Bonjour,

Je souhaiterais effectuer des modifications (effacement du contenu de l'une des feuilles) sur un classeur lorsque l'utilisateur fait "enregistrer sous".

J'aimerais donc
- dans un premier temps que l'utilisateur enregistre son fichier
- PUIS supprimer (en VBA) le contenu de la feuille concernée (et pas l'inverse : si je supprime le contenu de la feuille et que l'utilisateur annule lors de l'enregistrement sous je perds des informations...)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim ok As Boolean
    Dim rep As String
    ok = False
    Application.EnableEvents = False
 
    If SaveAsUI Then ' variable SaveAsUI = vrai correspond ou cas ou l'utilisateur à choisi ENREGISTRER SOUS
        Do
            rep = InputBox("Que voulez-vous faire ?" & Chr(10) & Chr(10) & "Pour enregistrer une sauvegarde de la MEME OPERATION, tapez 1." & Chr(10) & Chr(10) & "Pour utiliser ce document comme base pour une NOUVELLE OPERATION, tapez 2.", Default:=nveaunom)
            If rep = "" Then 'Si l'utilisateur clique sur le bouton Annuler la fonction renvoie une chaîne de longueur nulle ("").
                Cancel = True
                Application.EnableEvents = True
                Exit Sub
            End If
            If rep = "1" Or rep = "2" Then ok = True
        Loop While ok = False
        If rep = "1" Then ' cas MEME OPERATION : on ouvre simplement la fenêtre enregistrer sous et on laisse l'utilisateur se débrouiller
            Cancel = False
        ElseIf rep = "2" Then ' cas NOUVELLE OPERATION : il faut supprimer le contenu de la feuille stats
            Cancel = False
'            DoEvents
            MsgBox (2)
        End If
    Else ' variable SaveAsUI = faux correspond ou cas ou l'utilisateur a choisi ENREGISTRER
        Cancel = False
        ThisWorkbook.Save
    End If
    Application.EnableEvents = True
End Sub
Avec ma tentative ci-dessus, le message 2 s'affiche avant l'ouverture de la boite de dialogue "enregistrer sous", pourquoi ?!
Je voudrais ensuite mettre mon code de nettoyage à la place de cette msgbox ligne 22.

Auriez-vous des idées pour réussir à afficher le message après l'enregistrement du nouveau fichier depuis la boite de dialogue ?

En espérant avoir été assez clair, merci d'avance pour votre aide !