Gestion d'un "arrêt" pour renseignement de textboxes vides
h
Bonjour à tous,
Je travaille sur un formulaire VBA qui permet de générer des calculs de fiche de caisse.
L'extrait de code suivant (qui se joue au clic sur un bouton "valider") permet de vérifier la présence de caractères dans les textbox :
'Controle du remplissage des champs :
Dim textboxes() As Variant
Dim i As Integer
Dim Y As Variant
' Insertion textboxes dans un tableau
textboxes = Array(Billets, Especes, CB, Cheques, RemiseCaisse)
' initialiser le compteur
i = 0
' boucler à travers chaque zone de texte
For Each Y In textboxes
If Y.Text = "" Then ' vérifier si la zone de texte est vide
Y.BackColor = vbRed ' mettre la couleur de fond de la zone de texte en rouge
i = i + 1 ' ajouter 1 au compteur
End If
' vérifier si l'utilisateur a terminé la modification de la zone de texte
Do While T.SelLength > 0
DoEvents ' attendre que l'utilisateur termine la modification de la zone de texte
Loop
Next
' vérifier si toutes les zones de texte ont été remplies
If i > 0 Then
'MsgBox.vbRetryCancel "Un ou plusieurs champs reste(nt) à renseigner."
If MsgBox("Un ou plusieurs champs reste(nt) à renseigner.", vbOKOnly, "Champ Requis") = vbOKOnly Then
DoEvents
End If
End If Je n'arrive pas à laisser la possibilité à l'utilisateur de renseigner les textboxes qui n'auraient pas été renseignées. L'objectif étant de rejouer la boucle afin de re-contrôler le contenu des textboxes tant qu'elles ne sont pas toutes renseignées.
Merci d'avance pour l'aide que vous sauriez m'apporter !
Invité
Bonjour hbseb
Dans un UsF vous avez l'évènement Exit qui existe et qui s'utilise ainsi
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If FlgExit = True then Exit Sub ' FLAG de sortie, variable définit en Public dans un module
If Me.TextBox1.Value = "" Then Cancel = True
End SubSi le Textbox est vide on empêche la sortie
Attention !
Il faut bien souvent mettre un FLAG lors de la fermeture de l'UsF afin d'éviter un blocage
A+
h
Merci pour votre réponse, cette méthode fonctionne !