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 If

mais 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 !

Rechercher des sujets similaires à "probleme vbcancel exit sub"