Votre question

Relation entre boutton de commande et TextBox (VB)

Tags :
  • Visual basic
  • Programmation
Dernière réponse : dans Programmation
12 Avril 2005 16:32:40

Alors c'est du Visual basic qui me pose problême.

Schéma :

|Valider|
(______)

------------------------------------------------

Descriptif :

|Valider| : c'est un boutton de commande (Enabled mis sur false)

(______) : c'est une textbox.

---------------------------------------------------

Demande :

Quand l'utilisateur écris quelque chose dans la textbox, le bouton de commande mets Enabled sous true.

Merci pour ceux qui m'aideront, les autres n'ont qu'à aller .... :-D

Autres pages sur : relation boutton commande textbox

12 Avril 2005 16:41:35

edit: oups j'avais pas compris ta question =d
12 Avril 2005 16:42:15

Salut ,

y'a longtemps que je n'ai pas fait du VB

mais disons que ton bouton se nomme Bout et textbox txt.

dans le code de la textbox dans la subroutine "changed" tu met bout.Enabled = true

je crosi que c'est un truc comme ça
12 Avril 2005 16:45:44

J'essaye et je vous redis se que sa fait.

Au faites merci Tonton :-D
12 Avril 2005 16:47:35

De rien ,

tiens moi au courant
12 Avril 2005 16:51:02

Ben t'as rien perdu, c'est tout à fais ce qu'il me fallait !

Pendant que j'y suis, comment faire pour que seul les nombres soient tapables dans ma textbox ?
12 Avril 2005 17:10:26

regarde dans les propriétés de la text box
12 Avril 2005 17:14:27

C'est ce que je fais depuis un bon quart d'heure sans arriver à mettre la main sur la bonne propriété.

:crying: :snif:
12 Avril 2005 17:26:08

il faut tester ce qui est taper donc
tu utilises :

If IsNumeric(Text1.Text) Then
else
msgbox(....)
endif


avec ça , ça devrait etre bon
12 Avril 2005 17:31:12

C'es pas pour m'arranger, mais en attendant mieux.

Bon quand à fapprendre qulque chose, autant l'apprendre j'usqu'au bout. Tu peut m'expliqur la syntaxe pour une commande msgbox, stp. Mici !
12 Avril 2005 17:33:47

msgbox("texte")
12 Avril 2005 17:42:24

ok je vois
ca n eme déange pas du tout de t'aider

mais ce site sera le faire mieux que moi
http://www.vbfrance.com

il y a tout ce que tu veux

" Donne-lui un poisson aujourd’hui, il mangera aujourd'hui, apprend lui à pêcher, il mangera toute sa vie"
12 Avril 2005 17:45:23

Merci sa va mieux avec les " :-D
-------------------------------------------
gnark maintenat sa marche presque tout seul.

  1. If IsNumeric(Text1.Text) Then
  2. Else
  3. MsgBox ("Veuillez utilisez des caractères numériques !")
  4. result = ""
  5. End If


J'ai inséré result = "" afin que quand ce n'et pas un carractère numérique le message d'erreur s'affiche et que le carctère non-admis s'efface.
Mais écris comme ça, il me met 2 fois le message d'erreurs avant d'effacer le carractère.
Moi j'en voudrais qu'un de message d'erreur. Une idéee ? :-(
12 Avril 2005 17:47:40

Tu peux donner un code plus complet stp ?

Edit :
Tu as mis :
Then puis tout de suite après "Else"... il y a un problème...
12 Avril 2005 17:52:07

Zak ,

on a fait comme cela car je sais pas si la fonction

IsNotNumeric existe

donc a fait a fait :

si c'est numéric , alors
(on fait rien )
sinon
message
fin Si

12 Avril 2005 17:52:34

Citation :

Merkator a écrit :
Merci sa va mieux avec les " :-D
-------------------------------------------
gnark maintenat sa marche presque tout seul.

  1. If IsNumeric(Text1.Text) Then
  2. Else
  3. MsgBox ("Veuillez utilisez des caractères numériques !")
  4. result = ""
  5. End If


J'ai inséré result = "" afin que quand ce n'et pas un carractère numérique le message d'erreur s'affiche et que le carctère non-admis s'efface.
Mais écris comme ça, il me met 2 fois le message d'erreurs avant d'effacer le carractère.
Moi j'en voudrais qu'un de message d'erreur. Une idéee ? :-(



Voila le code corrigé :
Citation :

If IsNumeric(Text1.Text) = 0 Then
MsgBox ("Veuillez utilisez des caractères numériques !")
End If


J'ai pas trop compris ton results="" :-?
12 Avril 2005 17:52:58

Nan y a pas de problème pour then et Else qui se suivent. Tout simplement que si la condition est vrai et ben y a rien qui se passe.

Je pense qu'il n'y a pas besoin du reste du script. Je ne suis pas programmeur novice (sauf en VB :-) ), donc je sais situé à peu près le lieu de l'erreur.

Voilì voilù
12 Avril 2005 17:53:29

Citation :

tonton44 a écrit :
Zak ,

on a fait comme cela car je sais pas si la fonction

IsNotNumeric existe

donc a fait a fait :

si c'est numéric , alors
(on fait rien )
sinon
message
fin Si




Oui c'est un peu foireux xD
Regarde mon code, c'est plus simple. Ta fonction renvoi 1 si elle est vérifiée et 0 si elle ne l'est pas.
12 Avril 2005 18:01:10

:o hlala: Le truc c que je comprend pas tout ton code.

Y a un zéro qui se ballade je sais pas à quoi y sert et après tu mets then, j'ai l'impression que tu mets le message si c'est un caractère numérique.

Pour ce qui est du : result = "" je me suis trompé (on s'en serait douter). Il faut remplacé result par Text1. En faites c'est le nom que j'ai donné à ma textbox mais comme on l'appel Text1 depuis le début, j'ai juste omis de lui changer son nom :-P .

Au final éclaircit moi un peu ton code que j'y plus claire. Mici bien.
12 Avril 2005 18:06:46

Private Sub Text1_Change()
' Si text1.text change :
If IsNumeric(Text1.Text) = 0 Then
' Si la fonction IsNumeric() renvoi 0, cela signifie
' que text1.text n'est pas numérique
MsgBox "Veuillez utilisez des caractères numériques !"
Text1.Text = ""
End If
End Sub
12 Avril 2005 18:11:28

Sa y est tout compris. Et puis sinon toi qui a l'air de bien t'y connaitre, y a pas plus simplement une fonction de la textbox qui pourrait bloquer l'écrit des autres caractères autres que ceux numériques ?

Merci quand même ! :-D
12 Avril 2005 18:17:02

Attend j'ai compris ton problème ! (oui j'ai 2 de tension !) je te refais un code avec les explication et j'édite ca. Laisse moi 5 min :) 

Edit :
Voilà j'ai trouvé :
Citation :

Dim texte_backup As String
Private Sub Form_Load()
' Sauvegarde initiale :
texte_backup = Text1.Text
End Sub
Private Sub Text1_Change()
' On recupere le texte
texte = Text1.Text
If IsNumeric(texte) = 0 Then
' Si le texte n'est pas numérique
' on applique la sauvegarde
Text1.Text = texte_backup
Else
' Si c'est bien numérique on sauvegarde le texte :
texte_backup = Text1.Text
End If
End Sub

;-)
12 Avril 2005 18:37:20

J'veux bien mais n'y a t'il pas besoin de sauvegarder une nouvelle fois la variable texte_backup ? Par exemple faire en sorte que la partie Private Sub Form_Load() soit lut à chaque fois que l'utilisateur tape un caractère.

Dans le cas contraire j ne comprends pas bien l'utilité de cette partie.
12 Avril 2005 18:40:48

Ah oui bien sur tu peut mettre form_load() a la place de texte_backup = Text1.Text
Mais si tu ajoute d'autre truc dans form_load...
Ou alors tu te fais un fonction...
private sub backup()
texte_backup = Text1.Text
end sub

Et tu met après call backup() ou tout simplement backup() a la place de texte_backup = Text1.Text
12 Avril 2005 18:48:40

lol, RIEN COMPRIS !!!

On vas faire plus simple, je n comprends ton histoire d'enregistremnt de texte_backup.
Je parle du script de tout à l'heure pas de ta dernière réponse :-)

Et quand tu déclare ta variable ne devrait on pas marquer Dim texte_backup AS INTEGER au lieu de STRING. C'est des nombres entiers qu'on veut ! Non?
12 Avril 2005 19:32:49

Bon le texte_backup permet en fait de sauvegarder le texte ; comme ca si un caractère est entré ca n'efface pas tout : juste la dernière lettre tapé... C'est vrai que ca aurait pu etre integer mais avec string on peut mettre beaucoup plus de caractères... même numérique. :) 
Essai mon code :
Met une textbox et recopies simplement mon code.
12 Avril 2005 20:44:08

Bon finallement j'ai modifier ton code et je l'ai adopté à mon souhait, voilà se que j'obtient :

  1. Private Sub Text1_Change()
  2. If IsNumeric(Text1.Text) = 0 Then
  3. If Text1.Text = "" Then
  4. Text_backup = Text1.Text
  5. Else
  6. MsgBox ("Veuillez utilisez des caractaires numérique")
  7. Text1.Text = Text_backup
  8. End If
  9. Else
  10. Text_backup = Text1.Text
  11. End If
  12. End Sub


Voilà cette fois je crois ne rein avoir oublié de traduire.

Remerciement :
Tonton & Zak.
13 Avril 2005 17:16:03

C'est bien ton truc ; l'avantage de ma solution était que ca ne mettait pas une message box pénible ; seul les caractères numériques pouvaient être tapés...
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS