Bonjour a tous les fidèles de ce forum
C'est la première fois que je pose un problème.
J'ai un classeur (dont je protège le code VBA); je désire faire la copie d'un onglet de ce classeur chaque jour.
Dans cet onglet il y a des formules en code VBA
Je voudrais transférer le code d'un module (Formules) vers la copie du nouveau classeur créé.
Quand j'enlève la protection VBA le code ci-dessous fonctionne très bien. Une erreur est produite si la protection est active.
Erreur 50289 (Impossible d'effectuer cette opération tant que le projet est protégé.
Est-ce qu'il y a moyen d'enlever la protection VBA par macro?
Qui peut m'aider?
C'est la première fois que je pose un problème.
J'ai un classeur (dont je protège le code VBA); je désire faire la copie d'un onglet de ce classeur chaque jour.
Dans cet onglet il y a des formules en code VBA
Je voudrais transférer le code d'un module (Formules) vers la copie du nouveau classeur créé.
Quand j'enlève la protection VBA le code ci-dessous fonctionne très bien. Une erreur est produite si la protection est active.
Erreur 50289 (Impossible d'effectuer cette opération tant que le projet est protégé.
Est-ce qu'il y a moyen d'enlever la protection VBA par macro?
Qui peut m'aider?
Code:
Sub TransfertModule(NomModule As String, NomClasseur As String)
Dim LignesCode As String
Dim Wbk As Workbook
With ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
LignesCode = .Lines(1, .CountOfLines)
End With
LignesCode = Replace(LignesCode, "Option Explicit", "") 'On supprime "Option Explicit" car on risque un conflit si l'option "Déclaration des variables obligatoire" est en vigueur
Workbooks(NomClasseur).VBProject.VBComponents.Add(1).Name = NomModule
With Workbooks(NomClasseur).VBProject.VBComponents(NomModule).CodeModule
.AddFromString LignesCode
End With
End Sub
Dernière édition: