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 !

Leskwal

XLDnaute Occasionnel
Bonsoir

Voilà mon problème. 😀

Dans un formulaire, peut-on donner une propriété à un textbox ne permettant d'entrer QUE des chiffres?
Si oui comment ?

Peut on le faire de manière globale pour une vingtaine de textbox ?

En cas d'erreur, comment faire apparaitre un msgbox (Ce msgbox sera utilisé quelque soit le textbox concerné par une mauvaise entrée)

Merci d'avance

Pascal

Nb : une autre petite question : Comment affecter à un textbox le résultat de la multiplication de 2 textbox sans que le message "incompatibilité de type" n'apparaisse ???
 
Dernière édition:
Re : Valeur d'un textbox

Salut,Leskwal


voila un façon de mettre que des chiffre dans textbox:

Code:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim nc As Integer, s As String
s = Trim(TextBox1): nc = Len(s)
If nc = 0 Then Exit Sub
If (nc <> 8 And nc <> 6) Or Not IsNumeric(s) Then
MsgBox "Vous devez entrer 8 ou 6 chiffres sans espaces", , "Agrément"
TextBox1 = ""
Else
TextBox1 = Format(s, IIf(nc = 8, "00/0/0/0000", _
"00 0 0 0000"))
End If
End Sub

Cordialement
 
Re : Valeur d'un textbox

Bonjour,
Dans un formulaire, peut-on donner une propriété à un textbox ne permettant d'entrer QUE des chiffres?
Non cette propriété n'existe pas, une TextBox renvoie une valeur de type String.
Mais il y a moyen de contrôler la saisie via l'événement KeyPress
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then '<-- codes Ascii pour les chiffres de 0 (48) à 9 (57)
    MsgBox "Veuillez ne saisir que des chiffres !", vbExclamation
    KeyAscii = 0
End If
End Sub
Voir le message ci-dessous pour gérer plusieurs contrôles avec une seule procèdure

Nb : une autre petite question : Comment affecter à un textbox le résultat de la multiplication de 2 textbox sans que le message "incompatibilité de type" n'apparaisse ???
Comme dit plus haut, une TextBox renvoie une valeur de type String (chaîne de caractères), il faut donc d'abord convertir cette valeur en numérique pour pouvoir l'utiliser dans une opération
Code:
Private Sub CommandButton1_Click()
TextBox3 = Val(TextBox1) * Val(TextBox2)
End Sub
PS1 : Val va convertir la valeur en entier (10,875 deviendra 10), si on utilise des décimales il faut utiliser CSng ou CDbl au lieu de Val

PS2 : si tu dois pouvoir saisir la virgule dans les TextBox pour les décimales, il faut ajouter le code Ascii (44) dans le KeyPress
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then
    If KeyAscii <> 44 Then
        MsgBox "Veuillez ne saisir que des chiffres !", vbExclamation
        KeyAscii = 0
    End If
End If
End Sub
 
Dernière édition:
Gestion de plusieurs contrôles dans une seule procédure

Il y a moyen de gérer plusieurs contrôles via un Module de Classe
Les différents bouts de codes sont les suivants :
  • dans l'objet UserForm
    Code:
    Private Sub UserForm_Initialize()
    Dim Ctrl As Control
    Dim Cl As Classe1
    
    Set Col = New Collection
    
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is MSForms.TextBox Then
            Set Cl = New Classe1
            Set Cl.Tb = Ctrl
            Col.Add Cl
        End If
    Next Ctrl
    
    End Sub
  • dans un module de Classe nommé "Classe1"
    Code:
    Public WithEvents Tb As MSForms.TextBox
     
    'gérer l'evenement KeyPress des objets TextBox
    Private Sub Tb_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii < 48 Or KeyAscii > 57 Then '<-- codes Ascii pour les chiffres de 0 (48) à 9 (57)
        MsgBox "Veuillez ne saisir que des chiffres !", vbExclamation
        KeyAscii = 0
    End If
    End Sub
  • dans un module standard
    Code:
    Public Col As Collection
Peu importe la TextBox utilisée parmi tes 140 Textbox's, elle sera contrôlée 😉
Source du code
 
- 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

Retour