Test TextBox Non rempli d'espace vide

  • Initiateur de la discussion Initiateur de la discussion BOUCHEZ JD
  • Date de début Date de début

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 !

B

BOUCHEZ JD

Guest
Bonjour à tous.

Un petit pb tout bête : Comment tester qu'un utilisateur ne met pas que des espaces dans un TextBox où il doit par exemple mettre son nom.

A priori, ci dessous, cela marche, mais si l'utilisateur (vicieux) met 10 espaces, je ne veux pas faire 10 tests.

If TextBox1.Value = "" Then MsgBox "Vous devez donnez votre NOM "
If TextBox1.Value = " " Then MsgBox "Vous devez donnez votre NOM)" '1 espace
If TextBox1.Value = " " Then MsgBox "Vous devez donnez votre NOM)" '2 espaces
etc ...

Une solution.
Merci.
 
Re : Test TextBox Non rempli d'espace vide

Bonjour BOUCHEZ JD,

BOUCHEZ JD à dit:
si l'utilisateur (vicieux) met 10 espaces, je ne veux pas faire 10 tests.

If TextBox1.Value = " " Then MsgBox "Vous devez donnez votre NOM)" '1 espace
If TextBox1.Value = " " Then MsgBox "Vous devez donnez votre NOM)" '2 espaces
etc ...

Tu peux par exemple utiliser la fonction LEFT() ?

Si le premier caractére à gauche est " " alors "Vous devez donnez votre NOM"

Ainsi en une ligne de code tu inclus toutes ces erreurs de saisies, pas besoin de tester 1, 2, 3, 4, ... espaces

Sinon nous pouvons faire une boucle (For i=1 To 10 / Next i), mais si ton utilisateur vicieux en met 11, il t'aura roulé dans la farine 😉

Bonne après midi
 
Dernière édition:
Re : Test TextBox Non rempli d'espace vide

Salut,

Voici un petit bout de code en passant par le code ascii. C'est un peu tordu, mais ca a l'air de fonctionner :
Code:
Sub test()
Dim ta_chaine As String
Dim val_Ascii As Integer
Dim bool As Boolean
 
ta_chaine = "      " 'Valeur de test
bool = False
For k = 1 To Len(ta_chaine)
    val_Ascii = Asc(Mid(ta_chaine, k, 1))
    If val_Ascii <> 32 Then bool = True
Next k
If bool = False Then
    MsgBox "Il n'y a que des espaces !!!"
    Exit Sub
End If
End Sub

@+

PS: il faut bien sur que tu l'adaptes a tes textbox...
 
Re : Test TextBox Non rempli d'espace vide

Bonjour,

une autre façaon :

Tu déclares ceci dans un module standard :

Code:
Public LeNombre As Byte

Puis, dans ton code de l'userform :

Code:
Private Sub UserForm_Initialize()
LeNombre = 0
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 32 Then LeNombre = LeNombre + 1
End Sub

Private Sub CommandButton1_Click()
If LeNombre = Len(Me.TextBox1) Then
    Me.TextBox1.Value = ""
    MsgBox "Veuillez entrer un nom valide"
    LeNombre = 0
    Exit Sub
End If
[A1] = Me.TextBox1.Value
Unload Me
End Sub

Si tu as un bouton de commande pour valider ton nom, bien sûr...
Sinon, c'est possible de passer par l'évènement Exit :

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If LeNombre = Len(Me.TextBox1) Then
    Me.TextBox1.Value = ""
    MsgBox "Veuillez entrer un nom valide"
    LeNombre = 0
    Exit Sub
End If
End Sub
 
Re : Test TextBox Non rempli d'espace vide

bonjour BOUCHEZ JD Excel-lent porcinet82 le forum deja oblige a mettre que des les lettres puis conbine avec left sur plusieurs caracteres pour empecher de mettre dix fois la meme lettre autrement travailler sur une liste si le nom correspond pas a la liste ca bloque

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("azertyuiopqsdfghjklmwxcvbn", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub


ps salut bhbh pas rafraichi
 
Re : Test TextBox Non rempli d'espace vide

Bonjour BOUCHEZ JD, Porcinet,

En restant dans le même esprit, pour inclure tes erreurs du premier post et le dernier :

Tu peux écrire en VBA :
=Si(NB.SI(TextBox1.Value;" ")=NBCAR(TextBox1.Value);"Merci de SAISIR votre NOM";"Merci de ne pas avoir été vicieux lol")

NB.SI = COUNTIF en VBA
NBCAR = LEN en VBA

Cdt

Edition : Bonjour Excalibur, Bhbh j'avais pas rafraichis moi non plus! 😀
 
Dernière édition:
Re : Test TextBox Non rempli d'espace vide

re, Salut,

Juste une précision pour BJD, le code que je te propose fonctionne quelque soit le type de chaine, meme si tu mets 500 espaces et une lettre, ca ne posera pas de problème, une lettre étant deja présente !!!

@+
 
Re : Test TextBox Non rempli d'espace vide

Bonjour.

Finalement, je fais comme ceci :
(Textbox6 etant préalablement mis en majuscule)


Private Sub CommandButton1_Click() ' VALIDATION

If Me.TextBox6.Value Like "[A-Z]" Then
' OK Voir le PS ci dessous
Else
msgbox " Vous devez donnez le NOM "
Me.TextBox6.SetFocus
Exit Sub
End If

etc.... pour les autre TextBox

End Sub


PS: Je n'ai pas réussi à faire de ' not Like ' comme en SQL ; autre syntaxe ?


Bonne fin d'année (pour ce qu'il en reste)

BJD
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
390
Réponses
3
Affichages
924
Réponses
3
Affichages
882
Retour