Anti oubli...

deudecos

XLDnaute Impliqué
Bonsoir le forum,

Ma question est la suivante,
J'ai creer un userform avec plusieurs textbox a renseigner obligatoirement.
J'aimerais savoir comment je dois m'y prendre pour faire en sorte qu'un message d'erreur s'affiche et m'empeche de valider si jamais j'oubliais de remplir un textbox... :unsure:

Merci de votre aide

Olivier
 

Hellboy

XLDnaute Accro
Bonjour deudecos

Si tu insere un command button, tu peut associer le code suivant a ce bouton
Code:
Private Sub CommandButton1_Click()
UserForm1.Hide
If TextBox1.Value = Empty Then
   MsgBox ('Pas remplit...')
   UserForm1.Show
End If
End Sub
 

deudecos

XLDnaute Impliqué
Bonsoir Philippe, le forum,

Merci pour ton aide, c'est a peu pres ce que je cherchais, mais en fait, vu que j'ai 14 textbox a renseigner, j'aurais aime pouvoir n'avoir un msgbox qu'a la fin de l'operation, c'est a dire au moment de cliquer sur 'Valider'
Je crois que je peux adapter ce que tu m'a donne, mais il me semble que ca risque d'etre complique, et je n'ai pas bcp de neurones encore en fonction... :silly:

Merci en tout cas.
Olivier
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Olivier, Philippe, le Forum

Donc on peut boucler de plusieurs manières sur tes TextBox :

Private Sub CommandButton1_Click()
Dim CTRL As Control
   
For Each CTRL In Controls
       
If TypeOf CTRL Is MSFORMS.TextBox Then
           
If CTRL = '' Then
                MsgBox 'TextBox vide : ' & CTRL.Name
               
Exit For
           
End If
       
End If
   
Next CTRL

End Sub

Cette boucle scannera toutes les TextBox de Ton Userform...

Sinon on peut faire aussi ceci :

Private Sub CommandButton2_Click()
Dim i As Byte

   
For i = 1 To 10
       
If Me.Controls('TextBox' & i) = '' Then
            MsgBox 'TextBox vide : ' & 'TextBox' & i
           
Exit For
       
End If
   
Next i
End Sub

Cette boucle est par contre subordonnée à ce que tes Controls 'TextBox' se nomment 'TextBoxX' numéro par numéro de 1 à 10

Voilà pour une première approche de test 'massif'

Bonne Soirée
@+Thierry


PS pour Philippe, si je peux me permettre le lien dans ta signature n'a rien à voir avex un site bénévol de partage de connaissance sur Excel, et en plus c'est un site commercial, donc si tu peux rectifier, ce serait plus XLD-Compliant, par avance merci.
 

deudecos

XLDnaute Impliqué
Re bonjour le Forum,

Euh, sans vouloir exagerer, je me retrouve face a un petit soucis avec la formule...
Je m'explique, en fait ca marche super sauf que apres, il me reste un petit bout de programme, et il m'est impossible de modifier mes textbox en cas d'erreur...
Que dois-je faire pour y palier ?
Merci d'avance

Olivier
 

Hervé

XLDnaute Barbatruc
Bonjour

En somme tu veux que la macro s'arrete des qu'elle trouves un textbox vide ?

Pour cela utilise exit sub, exemple en reprenant la macro de thierry

Code:
Private Sub CommandButton2_Click()
Dim i As Byte

    For i = 1 To 10
        If Me.Controls('TextBox' & i) = '' Then
            MsgBox 'TextBox vide : ' & 'TextBox' & i
            Me.Controls('TextBox' & i).SetFocus
            Exit Sub
            Exit For
        End If
    Next i
End Sub

Salut
 

deudecos

XLDnaute Impliqué
Bonsoir Herve, le Forum

Merci pour ton aide, je vais essayer des demain.
Je me demande encore pourquoi je n'ai pas trouve cette solution... j'y ai quand meme passe trois bonnes heures en passant par l'aide du programme excel. (aide? quelle aide ?)

Bonne soiree
Olivier
 

Discussions similaires

Statistiques des forums

Discussions
313 059
Messages
2 094 888
Membres
106 115
dernier inscrit
bruno lemaire