Limiter le nombre de ligne d'une TextBox

Bonjour cher Forum!

Il m'a semblé déjà avoir trouvé la solution, mais je ne la retrouve plus et ce que je vois ne répond pas à ce que j'aimerais; je vous explique!

J'ai une TextBox17 qui est Multiline et dont la EnterKeyBehavior est activé (True). Ce que je voudrais c'est limité le nombre de line de la TextBox à 28. Pour être plus précis, je voudrais que rendu à la ligne 28 il ne soit plus possible de continuer ou d'ajouter des lignes même si on n'écrit plus rien.

Ce que j'ai pu trouvé est le clavier est désactivé lorsqu'on arrive à la limite de ligne toute fois il met possible d'ajouter des lignes avec Enter, sauf que je ne peux plus faire de saisie sur les lignes plus haute...

Pouvez m'aider? :)

Bonjour CedL

Si les lignes à comptabiliser sont bien séparées par un retour à la ligne "Entrée", on peut utiliser

' Limiter à 10 lignes
Private Sub TextBox17_Change()
  Dim Ind As Integer, TabTxt() As String, sTmp As String
  ' Si textbox vide, on sort
  If Me.TextBox17 = "" Then Exit Sub
  ' Sinon éclater le contenu dans un tableau avec le caractère de retour à la ligne
  TabTxt = Split(Me.TextBox17, Chr(10))
  ' Si le nombre de ligne est supérieur à 10
  If UBound(TabTxt) > 10 Then
    sTmp = ""
    ' On remprend le s10 premières lignes
    For Ind = 0 To 9
      sTmp = sTmp & TabTxt(Ind) & Chr(10)
    Next Ind
    Me.TextBox17.Value = sTmp
  End If
End Sub

S'il s'agit de texte saisi au kilomètre, alors là, je ne sais pas

A+

Rebonjour!

Finalement, j'ai trouvé quelque chose qui fait mon bonheur je vous partage le code si jamais :

Private Sub TextBox17_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If TextBox17.LineCount > 27 Then
    KeyAscii = 0
    MsgBox "Vous avez atteind le nombre maximal de ligne. Vous devez supprimer les lignes en surplus pour pouvoir continuez.", , "Caractères maximums"
Else
End If

End Sub

Merci!

Bonsoir CedL, BrunoM45,

On peut aussi compléter avec un avertissement couleur que l'on est arrivé sur la dernière ligne acceptée.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Multiligne = True
If TextBox1.LineCount > 26 Then TextBox1.BackColor = RGB(250, 230, 215)
If TextBox1.LineCount > 27 Then
    TextBox1.BackColor = RGB(255, 255, 255)
    KeyAscii = 0
    MsgBox "Vous avez atteind le nombre maximal de ligne. Vous devez supprimer les lignes en surplus pour pouvoir continuez.", , "Caractères maximums"
Else
End If
Rechercher des sujets similaires à "limiter nombre ligne textbox"