Que des chiffres dans un textbox [Résolu]

flamcy 58 Messages postés lundi 9 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 8 juil. 2007 à 02:05 - Dernière réponse : PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention
- 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




End If


MERCI D'AVANCE
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 8 juil. 2007 à 02:58
3
Merci
Salut
Tu tapes "chiffre textbox" dans la case Rechercher et tu auras ta réponse

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_Jack
Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 8 juil. 2007 à 11:50
3
Merci
salut,
et pourquoi spécialement au _change ?
http://www.codyx.org/snippet_textbox-numerique-seulement_53.aspx

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de PCPT
flamcy 58 Messages postés lundi 9 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 8 juil. 2007 à 12:00
0
Merci
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.

MERCI à vous 2
Commenter la réponse de flamcy
flamcy 58 Messages postés lundi 9 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 8 juil. 2007 à 15:49
0
Merci
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
Commenter la réponse de flamcy
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 8 juil. 2007 à 16:57
0
Merci
Petit conseil... évite d'utiliser des noms de variables identiques aux noms des contrôles
>>  saisie1

MPi
Commenter la réponse de cs_MPi
flamcy 58 Messages postés lundi 9 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 8 juil. 2007 à 17:02
0
Merci
dslé je me suis trompé en retappant la 1ere ligne (comme ca, ca pouvait pas marcher )
c'est:


Public releve1er as string

bien vu
Commenter la réponse de flamcy
flamcy 58 Messages postés lundi 9 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 28 juin 2008 à 12:09
0
Merci
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





Command_calculer_Click





End If





End If





End Sub
Commenter la réponse de flamcy
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 28 juin 2008 à 12:53
0
Merci
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
Commenter la réponse de PCPT
flamcy 58 Messages postés lundi 9 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 28 juin 2008 à 13:26
0
Merci
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)

merci quand-meme
Commenter la réponse de flamcy
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 28 juin 2008 à 14:36
0
Merci
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
Commenter la réponse de PCPT
flamcy 58 Messages postés lundi 9 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 28 juin 2008 à 17:33
0
Merci
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.

merci
Commenter la réponse de flamcy
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 28 juin 2008 à 17:38
0
Merci
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 ]
Commenter la réponse de PCPT

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.