XL 2019 uniformser à la fois plusieurs textbox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Monhtc

XLDnaute Occasionnel
Coucou le forum,
J'ai un userfom avec plusieurs textbox dont 7 qui contiendront que des nombre avec séparateurs de milliers.
Comment uniformiser ces 7 textbox (Textbox, textbox2, textbox3.. textbox6) à la fois pour que l'utilisateur ne puisse pas taper n'importe quoi mais que des chiffres
 
Solution
Coucou le forum,
J'ai un userfom avec plusieurs textbox dont 7 qui contiendront que des nombre avec séparateurs de milliers.
Comment uniformiser ces 7 textbox (Textbox, textbox2, textbox3.. textbox6) à la fois pour que l'utilisateur ne puisse pas taper n'importe quoi mais que des chiffres
Bonjour à tous
Pour ne pouvoir saisir que des chiffres, il y a ceci
Pour chaque textbox
VB:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("1234567890 " & Application.International(xlDecimalSeparator), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
Re Bonsoir @Monhtc , le Forum

Soit on agit à la saisie par TextBox par TextBox avec ce genre de code :

VB:
Private Sub TextBox1_Change()
If IsNumeric(Me.TextBox1.Value) = False Then
    Me.TextBox1.Value = ""
    MsgBox "Tapez du numérique SVP !", vbCritical, "Grrrrrrrrrrrrrrrrr"
End If
End Sub

Soit on agit une fois à la fin quand on veut exporter les données, on fait un contrôle global et préalable à l'export :

VB:
Private Sub CommandButton1_Click()
Dim CTRL As Control
Dim x As Byte

    For Each CTRL In Me.Controls
        For x = 1 To 7
            If CTRL.Name = "TextBox" & x Then
                If CTRL.Value = "" Then
                   MsgBox "La " & CTRL.Name & " est vide !", vbCritical, "Y à pas bon !"
                Exit Sub
                End If
                If IsNumeric(CTRL.Value) = False Then
                    MsgBox "La " & CTRL.Name & " ne contient pas une valeur numérique !" & vbCrLf & CTRL.Value, vbCritical, "Encore pas bon !!!!!"
                    CTRL.Value = ""
                    CTRL.SetFocus
                Exit Sub
                End If
            End If
        Next x
    Next CTRL

End Sub

Bonne découverte du monde VBA !
@+Thierry
 
Re,

Pour :
Private Sub CommandButton1_Click()?
doisje donc créer un bouton avant de rentrer ce code?

Ben tu auras sûrement un bouton "Valider" dans le UserForm, non ?
Donc ce code sera à intégrer en début de la Sub, avant qu'il ne se produise des actions de validation.
(C'est pourquoi d'ailleurs j'utilise "Exit Sub" quand les mauvaises conditions sont remplies... Le reste de la Validation ne se fera pas !)

Bonne nuit
@+Thierry
 
Coucou le forum,
J'ai un userfom avec plusieurs textbox dont 7 qui contiendront que des nombre avec séparateurs de milliers.
Comment uniformiser ces 7 textbox (Textbox, textbox2, textbox3.. textbox6) à la fois pour que l'utilisateur ne puisse pas taper n'importe quoi mais que des chiffres
Bonjour à tous
Pour ne pouvoir saisir que des chiffres, il y a ceci
Pour chaque textbox
VB:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("1234567890 " & Application.International(xlDecimalSeparator), Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
655
  • Question Question
Microsoft 365 textbox
Réponses
1
Affichages
332
Retour