Problème VbCancel & Exit Sub
Bonjour à tous,
Je rencontre un léger problème dans l'éxécution d'une inputbox. Voila le code :
ub reconciliation()
Application.DisplayAlerts = False
Application.CutCopyMode = False
Windows("Rapprochement PRKS_Base.xls").Activate
Sheets("Vérification").Activate
nb_account = Sheets("GROUPE PRKS").Range("B1").CurrentRegion.Rows.Count
site = InputBox("Choisir le site entre les propositions suivantes", "Sélection du site")
If site = vbCancel Then
Exit Sub
End If
[...]Initialement mon problème était que si l'utilisateur appuyait sur Cancel dans la box, la procédure se poursuivait "à vide".
Je l'ai résolu/contourné en précisant également les actions à mener si l'utilisateur appui sur "ok" avec un "if" aussi plutôt que de les mettre à la suite de mon premier code :
If site = VbOk then
[...]
elseif site = VbCancel then
[...]Problème : Maintenant "Cancel" stoppe bien la procédure mais il ne se passe plus rien si on appui sur "OK", qu'on remplisse le champs ou pas.
J'ai l'impression que site = vbOK annule la valeur "site" entrée grâce à l'input box.
J'ai essayé également la façon suivante :
If site = vbCancel Then
Exit Sub
Else
Sheets.Add.Name = "Base Client - " & site
Sheets("Base Client - " & site).Move After:=Sheets(3)
Set PRKS = Workbooks.Open(Filename:="F:\OPERATIONS\Global Definitive Client Data Base.xls", UpdateLinks:=False)
PRKS.Activate
Sheets("Conso").Select
Selection.AutoFilter
Rows("3:3").AutoFilter
Selection.AutoFilter field:=6, Criteria1:=site
Range("C1,C4:C65000,Q1,Q4:Q65000").Copy Destination:=Workbooks("Rapprochement PRKS_Base.xls").Worksheets("Base Client - " & site).Range("A1")
PRKS.Close savechanges:=False
Windows("Rapprochement PRKS_BAse.xls").Activate
Sheets("Base Client - " & site).Activate
If Range("A2") = "" Then
MsgBox "Veuillez entrer un des sites proposés", vbCritical, "Erreur de saisie du site"
Sheets("Vérification").Activate
Sheets("Base Client - " & site).Delete
Exit Sub
End If
End Ifmais dans ce cas je retrouve mon 1er problème de procédure qui tourne à vide si on appui sur cancel.
Any Idea ?
Merci d'avance !
Bonjour
En partant de ta 1ère macro et après quelques tests
Si l'utilisateur cliques sur 'Annuler" ou sur la "croix de fermeture" et même si une réponse dans la zone de saisie la variable site sera toujours = ""
Donc pour savoir la réponse il suffit de tester cette variable et tu sauras qu'elle réponse à été donnée
site = InputBox("Choisir le site entre les propositions suivantes", "Sélection du site")
If site = "" Then
MsgBox "Reponse non"
Exit Sub
End If
MsgBox "Réponse ok"Bonjour Banzai et merci.
En effet il est bon de savoir que cancel et la croix renvoient la valeur nulle.
Problème résolu,
Bonne journée !