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...)
Avec ma tentative ci-dessus, le message 2 s'affiche avant l'ouverture de la boite de dialogue "enregistrer sous", pourquoi ?!
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
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 !
Partager