Bonjour tout le monde,

J’ai un petit problème… alors je vous explique, j’ai une feuille d’un classeur que je sauvegarde dans un nouveau classeur, jusque la tout va bien. Cette feuille que je cherche a sauvegardé contient des macros vba, j’ai donc mis en place lors de la sauvegarde une petite macro pour supprimer l’ensemble des les lignes de code (vba) pour la feuille elle-même et pour le Thisworkbook du nouveau classeur (pour virer le option explicit qu’il met de base). J’ai vérifié lorsque je lance le nouveau classeur celui ne contient aucune ligne de code aucun module mais il me demande toujours quand je lance le fichier si je veux activer ou non les macros…
Chose encore plus étrange je lance le fichier j’active ou non les macros je fais un simple ctrl+s je ferme et revoure le fichier, et la ô miracle je n’ai plus la fenêtre d’activation des macros alors que j ai fait une simple sauvegarde du fichier plus une réouverture…

Je vous mets mon code de suppression des lignes et de sauvegarde mais je vous avous que je ne comprends pas trop.

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
30
31
 
'Sauvegarde de ma feuille dans un nouveau classeur
Sub sav()
sheetend = ActiveSheet.Name
classeur = ThisWorkbook.Name
Worksheets(sheetend).Copy
If Application.Dialogs(xlDialogSaveAs).Show = False Then
ActiveWorkbook.Close False
Windows(classeur).Activate
Exit Sub
End If
Call EffaceCodeObjet
Windows(classeur).Activate
End Sub
 
'Je nettoie le nouveau classeur de toutes macro et je le sauvegarde
Sub EffaceCodeObjet()
On Error GoTo ErrHandle
With ActiveWorkbook.VBProject.VBComponents(sheetend).CodeModule
.DeleteLines 1, .CountOfLines
End With
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.DeleteLines 1, .CountOfLines
End With
Worksheets(sheetend).Shapes("bt_new_calc").Delete
Worksheets(sheetend).Shapes("bt_sav").Delete
ActiveWorkbook.Close True
Exit Sub
ErrHandle:
MsgBox "ERREUR dans la suppression du code du Module", vbOKOnly + vbCritical
End Sub