Donc voilà mon problème. Je débute en VB et ce que je voudrai faire me paraissait assez simple: une text box avec dedans une valeur numérique à 1 par défault. A coté deux boutons: un bouton "+" et un bouton "-". Le but simple étant d'augmenter la valeur numérique de la textbox ou de la diminuer en cliquant que les boutons.
J'ai donc initaliser la variable "forval" comme variables integer
Private Sub Form_Load()
' Déclaration des variables
Dim forval As Integer
' Valeur de départ de forval
forval = 1
'affichage de forval
valfor.Caption = " " & forval
End Sub
Donc là pas de problèmes, la valeur 1 apparait bien dans le text boxt. Ensuite pour le code des deux boutons j'ai mis ceci:
Private Sub formoins_Click()
forval = forval - 1
valfor.Caption = " " & forval
End Sub
Théoriquement je pensais que qd j'allais cliquer forval allait être diminué de 1 et qu'il allait l'afficher et bien non. En fait ce code tape un -1 dans la case au premier cliq puis plus rien aux autres et le meme morceau de code avec un "forval = forval +1 " ne fait absolument rien qd je clique.
Si qq pouvait éclairer ma lanterne.
Dim forval As Integer <--- à placer dans la section
déclaration, sinon la variable forval est dite locale, et elle n'est
pas sauvegardée à chaque appel de l'évenement, j'explique:
Quand
tu déclare avec un dim en local, la variable n'est pas conservée aprés
la sortie de la procédure donc au prochain appel, forval vaudra tjs 0,
ca explique pourquoi tu sort tjs -1.
Private Sub formoins_Click()
Dim forval As Integer <-- déclaration locale
forval = forval - 1 <-- forval vaut tjs 0 donc tu sort -1 à chaque fois
valfor.Caption = " " & forval
End Sub
Tu peux tu corriger le probléme en remplacant le Dim par un static:
Private Sub formoins_Click()
Static forval As Integer <-- déclaration locale
forval = forval - 1 <-- forval est sauvegardé en mémoire, donc elle déincrémente
valfor.Caption = " " & forval
End Sub
Maintenant, si tu veux créer plusieurs boutons, tu dois déclarer forval
en section général (avec un dim), cela donne un accès permanent à ta
variable à toutes les procédures de ton formulaire. Si tu mettait un
static dans chq bouton, il utiliseraient chaqu'un une variable forval
différente.
Il permet, si on l'attache à une TextBox, d'incrémenter et de
décrémenter la valeur qui se trouve dedans. Une seule ligne de code :
UpDown1.BuddyControl = Text1
Manu -------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.