Annulation de la fermeture de mon classeur

Résolu/Fermé
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - Modifié par bassmart le 14/09/2015 à 18:42
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - 14 sept. 2015 à 18:47
Bonjour à tous!

J'ai un classeur avec une macro qui me pose 2 questions(msgbox) avant de quitter. La dernière question apparait dans un
msgbox VbOkCancel
et ce que je veux, c'est que quand j'appui sur Cancel, il annule la sortie de mon classeur. J'ai effectué un pas à pas et il voie ma fonction If et va à mon
Exit sub
mais sort de mon classeur.

J'ai fait quelques recherche mais sans trouver la solution!

Merci pour votre aide!

Voici mon code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Sheets("Forage").Range("a8") > "" Then
    Call CopieFeuillets
End If

    If MsgBox("AVEZ-VOUS APPORTEZ DES MODIFICATIONS?", vbYesNo + vbQuestion, "MODIFICATION") = vbYes Then
    UserForm5.Show
    ElseIf vbNo Then
    ActiveWorkbook.Saved = True
    Exit Sub
    End If
    
If MsgBox("CONFIRMATION DES MODIFICATIONS!", vbOKCancel + vbExclamation, "CONFIRMATION!") = vbOK Then
              
    For Each w In Application.Workbooks
    w.Save
    Next w
    Application.Quit
Else
    Exit Sub
End If

    
    
End Sub
A voir également:

1 réponse

bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1
14 sept. 2015 à 18:47
Bonjour à tous!

Finalement, j'ai trouvé une solution! J'ai remplacé
Exit sub
par
Cancel = True
et ça fonctionne, le classeur reste ouvert.

Voici les dernières lignes de mon code:
If MsgBox("CONFIRMATION DES MODIFICATIONS!", vbOKCancel + vbExclamation, "CONFIRMATION!") = vbOK Then
              
    For Each w In Application.Workbooks
    w.Save
    Next w
    Application.Quit
Else
    Cancel = True
End If


Merci!
1