Changer le contenu d'une textbox en cliquant sur un bouton [Résolu]

Messages postés
5
Date d'inscription
lundi 27 juin 2005
Dernière intervention
24 août 2006
- - Dernière réponse : econs
Messages postés
4066
Date d'inscription
mardi 13 mai 2003
Dernière intervention
23 décembre 2008
- 27 juin 2005 à 08:59
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.
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
27
Date d'inscription
mercredi 20 octobre 2004
Dernière intervention
27 juin 2005
3
Merci
Salut,



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.



J'espére m'étre un peut prés bien expliquer



A oui, encore une chose:


valfor.Caption = forval 'Suffit

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
0
Merci
'déjà met ça en début de programme:



Option Explicit




Daniel
Messages postés
4066
Date d'inscription
mardi 13 mai 2003
Dernière intervention
23 décembre 2008
0
Merci
As-tu songé à utiliser un contrôle UpDown ?

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.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.