J'utilise un UserForm de saisie et j'ai "masqué la fonction" (Bouton.Visible en False) qui doit apparaitre qu'à condition.
les éléments : Button_Rechercher (Visible True) ; Button_Suivant (Visible False)
Code :
Private Sub Button_Rechercher_Click()
// On Vérifie qu'il y a une saisie pour la recherche et on appel le Button_Suivant
If UserForm2.TextBox_Nom_Frn = "" Then
MsgBox "Vous devez saisir une Recherche", vbCritical
Call Button_Suivant_Click // Ici mon Pb c'est que je voudrai que mon Bouton reste en "Rechercher" après la réponse vbCritical . Donc vraiment s'assurer qu'il ya une saisie avant de libérer l'appel du bouton Suivant
Exit Sub
End If
Code :
Private Sub Button_Suivant_Click()
//Là je masque le Bouton Rechercher au profit de Suivant pour suivre sur la recherche
Je lis en français ce que tu fais dans ton premier code :
"Si c'est vide j'affiche un message et puis j'appelle le code suivant et puis je quitte la fonction."
Je traduis ce que je pense que tu veux obtenir :
"Si c'est vide, j'affiche un message sinon j'appelle le code suivant"
J'ai fais ca ; Ca fonctionne mais est-ce cohérent ?
n'y-a-t-il pas plus simple ?
Code :
Private Sub Button_Rechercher_Click()
Dim Suivant As Integer
Suivant = False
If UserForm2.TextBox_Nom_Frn = "" Then
MsgBox "Vous devez saisir une Recherche", vbCritical
Suivant = True
End If
If Not Suivant Then
Call Button_Suivant_Click
End If
End Sub
Parallèlement à celà un autre souci survient sur une autre partie du
Code :
Private Sub Button_Suivant_Click()
Dim x As Long
Dim Found As Boolean
Dim Reponse As Integer
Button_Rechercher.Visible = False
Button_Suivant.Visible = True
Found = False
For x = 4 To Range("A65535" ).End(xlUp).Row
If UCase(Range("A" & x)) Like "*" & UCase(UserForm2.TextBox_Nom_Frn.Value) & "*" Then
Found = True
Remplir ActiveSheet, x
// Ici initialement j'avais un MsgBox vbYesNo pour rappeler la Recherche d'après le contenu TextBox_Nom_Frn pour suivre les Occurences - Comment l'obtenir à nouveau lors d'un autre Click sur le Button_Suivant ?
End If
Next x
If Not Found Then
Reponse: MsgBox ("Requête non trouvée !" ), vbRetryCancel + vbExclamation
En fait c'est un Pb visuel ; Je m'explique quand je click sur "Rechercher" je souhaite appeler "Suivant" qui doit lancer la Macro de recherche.
Mais si je presse "Rechercher" sans valeur je ne veux pas voir apparaître tout de suite le bouton "Suivant" puisqu'il n'y a pas eu de "valeur" donc je veux conserver l'affichage du Bouton "Rechercher" ensuite si il y a bien une valeur alors Ok on appel le bouton "Suivant" pour la macro.