Serialsiner
Messages postés15Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention23 septembre 2005
-
6 mai 2005 à 11:05
Serialsiner
Messages postés15Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention23 septembre 2005
-
6 mai 2005 à 13:00
Bonjour à tous,
Je butte depuis plusieurs jours sur un problème avec un userform et j'aurais besoin de vos conseils éclairés :
J'ai un formulaire classique avec un bouton de validation qui fait appel à 2 procédures:
- Dans la première Sub, j'affecte le contenu des champs à des variables puis j'afecte ces variables à des cellules de ma feuille Excel.
- Ma deuxième Sub copie le classeur et l'enregistre sous un nouveau classeur.
Tout fonctionne correctement jusqu'à ce que j'ajoute à la fin de ma première procédure, un contrôle sur un champ :
If LeNomDeMonChamp = "" Then
alert = MsgBox("Merci de saisir votre les données" _
, vbExclamation + vbApplicationModal, "SAISIE INCOMPLETE!")
LeNomDeMonChamp.SetFocus
Else
Assistant.Hide
Unload Me
End If
Le contrôle fonctionne la première fois si le champ est vide et affiche le message, mais si je persiste et que je valide encore sans remplir le champ, la deuxième procédure est exécutée alors que je voudrais que le message s'affiche à nouveau jusqu'à ce que le champ soit rempli par l'utilisateur.
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 6 mai 2005 à 11:39
Voilà ce code doit fonctionner comme tu le veux.
Dim msg As String, Intx As Integer
If LeNomDeMonChamp = "" Then
msg = "Merci de saisir vos données"
Intx = MsgBox (msg, vbYesNo + vbExclamation, "SAISIE INCOMPLETE"
If Intx = vbYes Then
LeNomDeMonChamp.SetFocus
Exit Sub
Else
Unload Me
End If
Serialsiner
Messages postés15Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention23 septembre 2005 6 mai 2005 à 13:00
Merci beaucoup pour ton aide, ça marche !!!!
J'ai un peu modifié le code intuitivement pour avoir seulement un bouton OK, j'ai déclaré Intx comme booléen et j'ai mis une condition If Intx = True à la place, et ça a l'air de fonctionner correctement.