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

omegavsnemesis 5 Messages postés lundi 27 juin 2005Date d'inscription 24 août 2006 Dernière intervention - 27 juin 2005 à 01:25 - Dernière réponse : econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention
- 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
redblast 27 Messages postés mercredi 20 octobre 2004Date d'inscription 27 juin 2005 Dernière intervention - 27 juin 2005 à 02:05
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

Merci redblast 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

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



Option Explicit




Daniel
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 27 juin 2005 à 08:59
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.