Appliquer un code si le fichier Excel est fermé par l'utilisateur

Bonjour à tous,

J'espère que vous allez bien.

Le contexte :

J'ai créé un fichier Excel avec une page d'identification qui, si les identifiants et le mot de passe sont bons, affiche els onglets du fichiers.

Une fois que les identifiants et le mot de passe sont entrés, l'utilisateur clique sur le bouton "Connexion".

Il existe donc également un bouton "Déconnexion" codé ainsi :

Private Sub CommandButton2_Click()
Sheets("1").Visible = True
Sheets("2").Visible = 2
Sheets("3").Visible = 2
Sheets("4").Visible = 2
Sheets("5").Visible = 2
Sheets("6").Visible = 2
Sheets("7").Visible = 2
Sheets("8").Visible = 2
Sheets("9").Visible = 2
Sheets("10").Visible = 2
Sheets("11").Visible = 2
Sheets("12").Visible = 2
Sheets("13").Visible = 2
End Sub

Ma problématique est la suivante :

Je souhaiterais que ce code s'applique non seulement lorsque l'utilisateur clique sur le bouton "Déconnexion" mais surtout si l'utilisateur FERME le fichier sans s'être déconnecté.

Connaitriez-vous une instruction, sûrement avec if, qui me permettrait de faire ça ?

J'ai trouvé celle-ci mais elle permet seulement de dire si le workbook est ouvert :

Function IsWorkBookOpen(Name As String) As Boolean
    Dim xWb As Workbook
    On Error Resume Next
    Set xWb = Application.Workbooks.Item(Name)
    IsWorkBookOpen = (Not xWb Is Nothing)
End Function

Sub Sample()
    Dim xRet As Boolean
    xRet = IsWorkBookOpen("combine.xlsx")
    If xRet Then
        MsgBox "The file is open", vbInformation, "Kutools for Excel"
    Else
        MsgBox "The file is not open", vbInformation, "Kutools for Excel"
    End If
End Sub

Merci d'avance et bonne soirée.

Bien cordialement,

Bonsoir,

En clair il faut lancer le code avant que le classeur ne se ferme, il y a justement un évènement qui existe dans Excel qui se nomme Workbook_BeforeClose (voir image ci-dessous)

image

Pour ça il faut coder dans ThisWorkbook en double cliquant dessus, on sélectionne ensuite Workbook puis l'évènement BeforeClose dans la seconde liste déroulante, il faudra ensuite appeler le programme que vous voulez excécuter à partir de cet évènement.

Bonne soirée

Cordialement

Bonsoir Ausecour,

Je vous remercie pour cette information qui m'était tout à fait inconnue et qui résout mon problème à merveille.

C'est très intéressant. Encore une fois, je vais m'endormir moins bête sur Excel/VBA que la veille, merci !

Bonne soirée.

Bien cordialement,

Rechercher des sujets similaires à "appliquer code fichier ferme utilisateur"