VBA - Formulaires MsgBox

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 !

Laurine16

XLDnaute Nouveau
Bonjour,

Je souhaite créer un formulaires avec différents champs dont certains sont obligatoires.
Si un champs obligatoire n'est pas rempli, lors de l'enregistrement, la macro affiche un message d'erreur.
Cpdt, je souhaite qu'une fois que tous les champs obligatoires sont remplis, en cliquant sur ENREGISTRER, un MsgBox s'affiche me demandant si je souhaite vraiment créer une nouvelle ligne dans mon fichier excel.

J'ai réussi à créer la première partie mais concernant la seconde, je n'arrive pas à faire apparaître le message même si tous les champs sont bien remplis. Qqn pourrait-il m'aider SVP. Le projet à rendre est assez urgent...

Code VBA:

If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox7 = "" Or TextBox8 = "" Or ComboBox1 = "" Or ComboBox2 = "" Or ComboBox6 = "" Then MsgBox "Merci de remplir les champs obligatoires", vbOKOnly + vbCritical, "ERREUR Enregistrement"
Exit Sub

Unload Me

If MsgBox("Voulez-vous enregistrer ce nouvel arrêt ?", vbYesNo + vbQuestion, "Demande d'Enregistrement") = vbYes Then
L = Sheets("Base").Range("a65536").End(xlUp).Row + 1 'Demande confirmation d'enregistrement

Cordialement
Laurine
 
Hum... Cela ne résolve tjrs pas mon pb.
Lorsque les champs sont tous remplis, que je clique sur ENREGISTRER, la seconde fenêtre avec la confirmation de l'enregistrement ne s'ouvre pas.
Voici mon fichier si cela peut vous aider. Par contre je n'ai pas encore insérer de bouton sur la feuille "BASE" pour accéder au formulaire
 

Pièces jointes

Mais si je l'enlève et que j'essaie d'enregistrer avec quelques données manquantes, la macro fait qu'elle enlève mon formulaire pour me demander si je souhaite enregistrer. Sachant que toutes mes données obligatoires ne sont pas renseignées, je suis obliger de tout recommencer ...
 
Je n'ai pas dit de l'enlever mais de le soumettre à la même condition que le MsgBox, à mettre à la ligne derrière le Then, avec un End If à la fin.

Conseil: Donnez des noms mnémoniques à vos contrôles, commençant par 3 lettres: généralement les majuscules et la dernière lettre du nom de type du contrôle. CBxNatArrêt au lieu de ComboBox6, TBxDernJT au lieu de TextBox5, CBnEnreg au lieu de CommandButton1.
 
VB:
If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox7 = "" _
   Or TextBox8 = "" Or ComboBox1 = "" Or ComboBox2 = "" Or ComboBox6 = "" Then
   MsgBox "Merci de remplir les champs obligatoires", vbOKOnly + vbCritical,  Me.Caption
   Exit Sub: End If
Du moins c'était ce que vous vouliez faire. Personnellement je n'y adhère pas vraiment.

Pour ce qui est de mon conseil, je parlais naturellement de la première propriété (Name) dans la fenêtre de propriété, qui mérite pour chaque contrôle un nom clair, facilitant le développement et la mise au point en permettant de s'y retrouver plus facilement.

Je trouve aussi que le MultiPage n'apporte rien à part de la lourdeur d'utilisation.
 
Dernière édition:
- 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

Discussions similaires

Réponses
4
Affichages
244
Réponses
6
Affichages
605
Réponses
3
Affichages
898
Réponses
9
Affichages
1 K
Retour