vérifier si textbox et combobox vide

zek

XLDnaute Nouveau
Bonjour,

Je suis en train de finaliser un userform. Celui ci est composé de textbox et de combobox.
Certain de ces textbox et combobox, s'affichent sous conditions (en fonction d'un autre et de la réponse apportée).

Je souhaiterai avoir un contrôle lors de la validation du formulaire avec un message informant l'utilisateur que un textbox ou combobox est vide,n avec mise en couleure (rouge par exemple) du champs vide.

Mon code qui débloque:
- - - - - -
Private Sub CommandButton_valider_Click()

Dim c As Control

For Each c In UserForm1.Controls

Select Case TypeName(c)
Case "TextBox", "ComboBox"

If c.Value = "" Then
c.BackColor = RGB(255, 0, 0)
If c.Value <> "" Then

If c.Visible = True Then

End If
End If

MsgBox "Merci de completer les zones manquantes!"

c.SetFocus
Exit Sub

End If

End Select
Next c
MsgBox "Votre saisie est maintenant complète"

- - - -

le message d'erreur
erreur d'exécution '2110'
le focus ne peut etre déplacé sur le controle car celui-ci est invisible, non activé, ou d'un type n'acceptant par le focus

-----

je pense que le problème vient sur le fait que certains textbox/combobox ne soient pas affiché...

merci de votre aide!!

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : vérifier si textbox et combobox vide

Bonsoir à tous______________EDITION: Bonsoir Roland_M (alors tu as tâté du powershell ?)

test ok sur le fichier exemple que tu n'as pas joint...:rolleyes:
Code:
Private Sub CommandButton1_Click()
Dim c As Control
For Each c In UserForm1.Controls
Select Case TypeName(c)
Case "TextBox", "ComboBox"
If Len(c.Value) = 0 Then
c.Enabled = True
c.BackColor = RGB(255, 0, 0)
MsgBox "Merci de completer les zones manquantes!"
c.SetFocus
Exit Sub
End If
End Select
Next c
MsgBox "Votre saisie est maintenant complète"
End Sub
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : vérifier si textbox et combobox vide

bonsoir,

voir comme ceci, pas facile sans un fichier !?
Code:
 Private Sub CommandButton_valider_Click()
 Dim c As Control
 For Each c In UserForm1.Controls
 
 Select Case TypeName(c)
   Case "TextBox", "ComboBox"
        c.Visible = True
     If c.Value = "" Then
        c.BackColor = RGB(255, 0, 0)
        MsgBox "Merci de completer les zones manquantes!"
        c.SetFocus: Exit Sub
     End If
 End Select
 
 Next
 MsgBox "Votre saisie est maintenant complète"


EDIT: oups ! Salut Staple !
 

Discussions similaires

Statistiques des forums

Discussions
312 362
Messages
2 087 634
Membres
103 617
dernier inscrit
cisco1