flamcy
Messages postés58Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention14 avril 2009
-
8 juil. 2007 à 02:05
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
28 juin 2008 à 17:38
Bonjour à tous,
je voudrais forcer l'utilisateur à ne saisir que des chiffres dans un "textbox_change".
mon code ci-dessous marche à peu pres mais pas à tous les coups, surtout si je fais un "retour effacer" s'il n'y a plus de caractère... pouvez-vous m'aider (si j'ai été assez clair)
mon code:
Public diffconso As Long, releve1er As Long, releve2nd As Long<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Private Sub Saisie1_Change()
releve1er = Saisie1.Text
End Sub
Private Sub Saisie2_Change()
releve2nd = Saisie2.Text
End Sub
diffconso = releve2nd - releve1er
If IsNumeric(releve1er) = False Then
RECOMMENCER:
reponse1 = MsgBox("Les relevés doivent être uniquement en chiffres", vbExclamation, "Recommencer la saisie des relevés")
If reponse1 = vbOK Then
Saisie1.SetFocus
Exit Sub
End If
Else: If IsNumeric(releve2nd) = False Then GoTo RECOMMENCER
flamcy
Messages postés58Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention14 avril 2009 8 juil. 2007 à 12:00
JACK : merci, je vais jetter un oeil en essayant de comprendre. j'avais mal géré ma recherche. je cherchais avec "textbox+isnumeric"... faut maintenant que je déchiffre tout ça car le but est aussi de comprendre
PCPT : ben parce-que je ne vois pas comment faire autrement. je vais regarder ton lien.
flamcy
Messages postés58Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention14 avril 2009 8 juil. 2007 à 15:49
un grand merci à vous 2,
apres avoir fais le tri (qui a duré!), j'ai fais un mix de 2 codes que je n'arrive pas à retrouver tellement j'ai ouvert de pages (dslé pr les auteurs) dont voici :
(j'avais bcp galéré car j'avais déclaré saisie1 as Long, j'emploie donc Clng(saisie1) par la suite)
********
Public saisie1 As String
Private Sub Saisie1_Change()
releve1er = Saisie1.Text
End Sub
Private Sub Saisie1_KeyPress(KeyAscii As Integer)
If Not Chr(KeyAscii) Like "[0123456789]" And Not KeyAscii = 8 Then
Beep
KeyAscii = 0
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
flamcy
Messages postés58Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention14 avril 2009 28 juin 2008 à 12:09
bonjour à tous,
j'ai un nouveau pb concernant toujours ce topic.
comment faire pour répéter le code suivant sur 20 textbox sans devoir mettre le code 20 fois ?
j'ai vu l'utilisation de Me.controls mais je ne comprend pas comment ça marche et n'arrive pas à faire l'analogie avec ma situation. Cette fois-ci c'est dans le but de récupérer les valeurs pour les mettres sur une ligne constituée de 20 cellules excel (VBA). Donc une fois que j'aurais compris la boucle, je pense pouvoir arriver à mes fins.
voici le code: (qui pourra peut-être servir à certains)
Private Sub TextBox1_KeyPress(KeyAscii As Integer)<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
If Not Chr(KeyAscii) Like "[0123456789]" And Not KeyAscii = 8 And Not KeyAscii = 13 Then
Beep
KeyAscii = 0
Else
If KeyAscii = 13 Then 'si appui sur la touche "entrée"
KeyAscii = 0 'supprimer le bip lors de l'appui sur la touche
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 28 juin 2008 à 12:53
salut,
(un an déjà ? ^^)
regarde au niveau des groupes de contrôles, c'est à dire copier 19 fois ton contrôle pour avoir alors la propriété index qui change.
tu auras alors un autre argument (index) dans l'évènement et tout ton code sera traité une seule fois.
un peu compliqué dit comme çà, essaye çà va aller tout seul (juste copier tes contrôles, supprimer ton code depuis la sub _change, et double-cliquer sur une des textbox...)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
flamcy
Messages postés58Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention14 avril 2009 28 juin 2008 à 13:26
salut,
oui déjà un an !! car je cherche dans les topics avant de poster et en général je trouve mon bonheur mais là j'avoue, je coince.
comme tu dis, c'est un peu compliqué dis comme ça. Je ne vois pas trop. je suis loin d'etre un pro en la matière et j'ai appri le vb tout seul donc je n'ai certainement pas été dans le bon ordre en apprenant.
le pire c'est que c'est juste une petite boucle à la c....!
j'essaierai de regarder la semaine prochaine (un peu plus de dispo)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 28 juin 2008 à 14:36
essaye juste avec un nouveau projet :
tu poses une textbox par défaut (nommée Text1 )
tu la sélectionnes
ctrl+c
ctrl+v => VB va te demander si tu veux faire un groupe de contrôle : [OUI]
ctrl+v => plus de question
ctrl+v
ctrl+v
ctrl+v
ensuite double-click sur une tes textbox
le code suivant va apparaître :
Private Sub Text1_Change(Index As Integer)
End Sub
alors que sans groupe il aurait mis :
Private Sub Text1_Change()
End Sub
dans l'évènement copie ceci :
Me.Caption = "ZONE (" & Index & ") : '" & Text1(Index).Text & "'"
lance le projet puis saisi du texte dans tes zones en regardant ce qui s'affiche dans la barre de titre de ta fenêtre
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
flamcy
Messages postés58Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention14 avril 2009 28 juin 2008 à 17:33
en effet, je vois mieux ce que tu voulais dire mais je n'arrive pas à l'adapter à ma situation. je pensais que le "Me" était autre chose car là tu t'en sert pour la form en général. je croyais que ca permettait de selectionner toutes les textbox.
tu sais pas où je peux trouver un complément d'info sur Me ?
j'ai beau chercher, je tombe toujours sur des ex et pas bcp d'explications.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 28 juin 2008 à 17:38
me c'était pour l'exemple, pour afficher dans le titre de ta form
mais de toute façon çà n'est faisable (un groupe) que pour une seule et unique form...
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ]