VBA compteur de caractères dans userform
Résolu
fr.chaumon
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aurais besoin d'aide pour deux petites choses sous excel.
Voilà, j'ai un userform avec 2 champs à remplir qui servent par la suite à créer une nouvelle feuille. J'ai bien Réussi à créer une conditions pour que la longueur de chaine ne dépasse pas un certains nombre de caractères.
Ce que j'aimerais c'est insérer dans ce userform est un compteur de chaine, c'est à dire insérer une ptite case qui indique le nombre de caractères des 2 champs réunis (et qui passe en rouge si la valeur maximale est dépassée si possible).
J'aurais besoin d'aide pour deux petites choses sous excel.
Voilà, j'ai un userform avec 2 champs à remplir qui servent par la suite à créer une nouvelle feuille. J'ai bien Réussi à créer une conditions pour que la longueur de chaine ne dépasse pas un certains nombre de caractères.
Ce que j'aimerais c'est insérer dans ce userform est un compteur de chaine, c'est à dire insérer une ptite case qui indique le nombre de caractères des 2 champs réunis (et qui passe en rouge si la valeur maximale est dépassée si possible).
Private Sub CommandButton1_Click()
Dim MyLen
MyLen1 = Len(NomCont.Value)
MyLen2 = Len(IdLot.Value)
MyLen = MyLen1 + MyLen2
If MyLen > 23 Then
MsgBox ("Le nom du contrôle est trop long, pas plus de 23 caractères !")
Frame1.BackColor = RGB(102, 153, 153)
Frame1.ForeColor = RGB(102, 0, 0)
Frame4.BackColor = RGB(102, 153, 153)
Frame4.ForeColor = RGB(102, 0, 0)
NomCont.SelStart = 1
Else
If NomCont.Value = "" Then 'Evite d'entrer un nom de parametre nul
Frame4.BackColor = RGB(102, 153, 153)
Frame4.ForeColor = RGB(102, 0, 0)
Response = MsgBox("Vous n'avez entré aucun nom de contrôle" & Chr(10) & "Voulez vous abandonner ?", vbYesNo)
If Response = vbYes Then
NEWLOT.Hide
End
End If
Else
If IdLot.Value = "" Then 'Evite d'entrer un autre caractère qu'un chiffre
Frame1.BackColor = RGB(102, 153, 153)
Frame1.ForeColor = RGB(102, 0, 0)
MsgBox "Lot obligatoire"
IdLot.SelStart = 1
IdLot.SelLength = Len(IdLot.Text)
Else
If Not IsDate(OuvLot.Text) Then
Frame2.BackColor = RGB(102, 153, 153)
Frame2.ForeColor = RGB(102, 0, 0)
MsgBox "Format date obligatoire (type JJ/AA/MMMM)"
OuvLot.SelStart = 1
OuvLot.SelLength = Len(OuvLot.Text)
Else
NEWLOT.Hide
End If
End If
End If
End If
End Sub
A voir également:
- VBA compteur de caractères dans userform
- Caractères spéciaux - Guide
- Compteur de contractions - Télécharger - Santé & Bien-être
- Caracteres speciaux - Guide
- Caractères ascii - Guide
- Caractères spéciaux mac - Guide
1 réponse
Bonjour,
https://www.cjoint.com/?BJbnzizfq8L
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Private Sub TextBox1_Change()
Label1 = Len(TextBox1) + Len(TextBox2)
couleur
End Sub
Private Sub TextBox2_Change()
Label1 = Len(TextBox1) + Len(TextBox2)
couleur
End Sub
Private Sub couleur()
If Len(TextBox1) + Len(TextBox2) > 4 Then
Label1.ForeColor = vbRed
Else
Label1.ForeColor = vbBlack
End If
End Sub
https://www.cjoint.com/?BJbnzizfq8L
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Merci eriiic, ça marche très bien. J'ai même réussi à insérer un msgbox qui permet de stopper la suite des opérations.
eric