[VB6] données d'une feuille vers une autre

Résolu/Fermé
Mangaf - 30 oct. 2009 à 10:14
 Mangaf - 2 nov. 2009 à 22:30
Bonjour,

J'essaie de réaliser un programme de calcul d'équation du second degré avec VB6.

J'ai d'abord une première feuille de présentation, qui permet à l'utilisateur d'entrer les données de son équation
ensuite il y a un bouton ''Calculer'' dans lequel j'ai codé tous les calculs à faire et le chargement d'une 2ème feuille.
Cette 2ème feuille (form2) ne me sert qu'à afficher les résultats du calcul. Et mon problème c'est qu'il ne reconnait pas les calculs, vu que les données sont sur la première feuille (form1).

Alors, comment arriver à faire reconnaitre à la feuille 2 les calculs effectuées sur la feuille 1?

J'espère avoir été assez clair.

Merci^^

PS: j'ai pris le soin de déclarer ''Public'' et dans un module, toutes les variables.

9 réponses

Bonjour,

Peut-on juste voir comment tu affiches les résutats dans feuil2 pour qu'on se rende compte?

A+.
0
Bonjour,

Par exemple dans le label 3 qui est juste sensé afficher le déterminant que j'ai nommé D j'ai mis:

Private Sub Label3_Click()

Label3.Caption = D

End Sub


dans label 5 par exemple

Private Sub Label5_Click()

If D > 0 Then Label5.Caption = "L'équation admet deux solutions réelles"
End If
If D = 0 Then Label5.Caption = "L'équation admet une solution double"
End If
If D < 0 Then Label5.Caption = "L'équation admet deux solutions complexes"
End If

End Sub



sachant que D, je le calcul sur la feuille 1.

Merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
30 oct. 2009 à 11:37
Bonjour,

Il faut cliquer sur le label pour voir la solution ?

Pourquoi ne pas mettre le code directement dans le Form_load() du formulaire 2 ?

;o)
0
Bonjour,

En effet, ta façon d'afficher les valeur de tes variables est originale.
Mais si tu as pris le soins de déclarer Public tes variables dans un module, ça devrait marcher.

N'aurais-tu pas fait une double déclaration de tes variables?
Exemple: dans un module

Public i As Integer

Sub test1()
Dim i As Integer
   i = 1
   MsgBox i
   Call test2
End Sub

Sub test2()
   MsgBox i
End Sub


Note la double déclaration, une fois Public i As Integer, et une seconde fois Dim i As Integer en local dans test1. Execute test1 et observe le resultat.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

Je n'ai pas fais de double déclaration, et j'ai déjà pensé à mettre le code dans le form_load() de la 2ème feuille.
Mais le problème c'est que les variable avec lesquels je travaille sont saisis par l'utilisateur sur la feuille 1.
Je ne sais pas si vous me suivez.

par exemple l'équation est de la forme aX² + bX + c
Sur la feuille 1, il y a 3 petites barres de texte pour que l'utilisateur donne les valeurs de a, de b puis de c.
en code ça donne ça:

Private Sub Command1_Click()

a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)


Mais Text1.Text, et tous les autres, ne sont connus que par la feuille 1.

De ce fait, la feuille 2 connait a, b et c, car ils sont dans le module.
Mais il ignore qu'ils ont pris les valeurs des Text 1, 2 et 3.

Merci de votre aide.
0
Bonjour,

Puisque les variables a,b,c et d sont publiques, il ne devrait pas y avoir de problème.
D'autre part, tu peux faire référence à des contrôles placés sur d'autres feuilles en mettant leur nom au complet comme par exemple si la feuille 2 est active:
a = Val(Form1.Text1.Text)
b = Val(Form1.Text2.Text)
c = Val(Form1.Text3.Text)

Si ça ne marche toujours pas, poste le code complet en indiquant dans quelle partie du projet il se trouve (Form1, Module1...), je regarderai d'où vient l'erreur.

A+.
0
Bonjour,

Problème réglé^^

a = Val(Form1.Text1.Text)

C'était le "Form1" qui manquait à mon code et que je cherchais à savoir ^^

Là j'ai codé les calculs sur le form_load de la feuille 2 et tout baigne.

Merci beaucoup de votre aide ;)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
2 nov. 2009 à 20:49
Bonsoir,

Ce qui manquait essentiellement c'est une exposition plus claire du problème.

Dans ton premier post, la Form2 ne servait qu'à faire l'affichage, tu dis maintenant que le calcul se fait aussi dans la Form_Load() de la feuille 2. Cette précision n'est pas des moindre.

Si a est sur la Form1, il n'y a pas besoin de préciser Form1.text1.

Ensuite je n'ai toujours pas eu de réponse pour mon post #3, idem pour le post #6 de calibos.

La programmation ne supporte pas "d'à peu près".

Content que tu te sois débrouillé tout seul ^^

0
En effet, c'est un peu confus tout ça.
Mais regarde bien, ton post#3 et le post#6 de calibos ont constitué ma solution finale.

je te cite:
"Il faut cliquer sur le label pour voir la solution ?

Pourquoi ne pas mettre le code directement dans le Form_load() du formulaire 2 ? "


tu me montres là une erreur (le click sur le label) et un autre possibilité que j'avais déjà tenté sans succès, pourquoi?

Parce que c'est dans form1 que l'utilisateur saisi les valeur avec lesquels les calculs se font.
Donc pour pouvoir mettre le code direct dans le form2, il fallait signaler, je cite calibos:

"a = Val(Form1.Text1.Text)
b = Val(Form1.Text2.Text)
c = Val(Form1.Text3.Text) "


mais bon, je suis juste débutant sur VB6.....désolé si je n'ai pas pu être clair.

Mais merci quand même.
0