Supprimer espaces superflus saisie TextBox

Bonjour tout le monde

Dans un UF, j'ai une TextBox dans laquelle j'attends que l'utilisateur saisisse une donnée.

Pour éviter les erreurs, j'aimerais contrôler la saisie pour ne permettre que les lettres (en majuscules), et les espaces.

Pour ces derniers, j'aimerais n'autoriser qu'un espace et éviter que l'utilisateur n'en mette 2 au même endroit (soit annuler la touche espace si le caractère précédent est un espace, soit supprimer l'espace supperflu après avoir fini la saisie)

Voici mes codes :

1) Autoriser que les lettres majuscules + espaces :

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Select Case KeyAscii
Case Asc("A") To Asc("Z"), 32
Case Else
    KeyAscii = 0: Beep
End Select

ComboBox1.Value = ""

End Sub

2) Supprimer les espaces supperflus avant/après la saisie :

Private Sub TextBox1_AfterUpdate()

TextBox1.Text = Trim(TextBox1.Text)

End Sub

En vous remerciant par avance pour votre aide !

Bonjour

a voir

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If Len(TextBox1) = 0 And KeyAscii = 32 Then KeyAscii = 0: Beep
   KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

a la place de Trim mettre Application.Trim

A+

Maurice

Salut archer, RodolpheT

Pour éviter les erreurs, j'aimerais contrôler la saisie pour ne permettre que les lettres (en majuscules), et les espaces.

pour :

soit annuler la touche espace si le caractère précédent est un espace ET aussi annuler la touche si le caractère est en minuscule

essayer cette proposition :

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    'MsgBox "Seuls lettres en majuscules et espaces sont autorisées"

    If Chr(KeyAscii) Like "[A-Z]" Or Chr(KeyAscii) Like " " Then
       If TextBox1.Text Like "" And Chr(KeyAscii) Like " " Then
          Beep
          SendKeys "{BACKSPACE}"
          'MsgBox
       ElseIf TextBox1.Text Like "* " And Chr(KeyAscii) Like " " Then
          Beep
          SendKeys "{BACKSPACE}"
          'MsgBox
       End If
    Else
       Beep
       SendKeys "{BACKSPACE}"
       'MsgBox
    End If

End Sub

Il ne permit pas l espace avant toute la phrase

Il ne permit pas plus d un espace entre les mots

Il ne permit pas les lettres en minuscule

Et tous ce qu’il fait est l avertissement de l’utilisateur.

.

Bonjour archer, AMIR,

Merci tout d'abord pour votre aide

J'ai opté pour ton code AMIR, qui correspond parfaitement à ce que je souhaitais. J'ai laissé le "Trim" dans .AfterUpdate afin d'enlever un éventuel espace que l'utilisateur taperait à la fin du mot !

Merci à vous

Rechercher des sujets similaires à "supprimer espaces superflus saisie textbox"