VBA compteur de caractères dans userform
Résolu
fr.chaumon
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 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
- Compteur électrique - Guide
- Compteur de contractions - Télécharger - Santé & Bien-être
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Comment ralentir un compteur linky forum - Accueil - Objets connectés
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