Bonjour à tous,
Quelqu'un saurait par quel moyen le code VBA d'un module pourrait effacer le code VBA associé à un onglet.
Merci.
Version imprimable
Bonjour à tous,
Quelqu'un saurait par quel moyen le code VBA d'un module pourrait effacer le code VBA associé à un onglet.
Merci.
Bonjour
Essaie ce code qui fonctionne pour moi
CordialementCode:
1
2
3
4
5
6
7
8
9
10
11
12 'Vous devez connaître le nom de la macro et le nom du module dans lequelle elle se trouve. 'Vous devez ajouter la référence "Microsoft visual Basic For Application Extensenbility x.x" à votre projet 'Supprimer la macro nommée "MaMacro" dans le "module3" Sub supprimerUneMacroPrecise() Dim Debut As Integer, Lignes As Integer With ThisWorkbook.VBProject.VBComponents("Module3").CodeModule Debut = .ProcStartLine("MaMacro", 0) Lignes = .ProcCountLines("MaMacro", 0) .DeleteLines Debut, Lignes ' End With
Merci,
Ce code me permet d'accéder au code d'un onglet d'un classeur avec le code d'un module d'un autre classeur.
Le problème est que ".DeleteLines" ne fonctionne pas et provoque une erreur :
"Argument ou appel de procédure incorrect"
Je cherche toujours...
A faire aussi
Outils/Macro/Sécurité/Editeurs approuvés et cocher Faire confiance au projet Visual Basic
Cordialement
Rectifications :
La méthode ".DeleteLines" fonctionne quand je l'applique par exemple sur la procédure "Worksheet_Activate". La procédure est effectivement supprimée.
Je que je voudrais, c'est supprimer toutes les lignes. Et ça je n'y arrive pas encore.
A suivre.
Trouvé !
Me permet de supprimer tout le code associé à un ongletCode:
1
2
3
4
5
6 With VBC.codemodule .DeleteLines 1, .CountOfLines End With
Merci encore.
Je viens de vérifier, toutes les lignes sont supprmées
Code:
1
2
3
4
5
6
7
8
9
10
11 Sub MaMacro() 'Supprimer la macro nommée "MaMacro" dans le "module3" Dim Debut As Integer, Lignes As Integer With ThisWorkbook.VBProject.VBComponents("Module3").CodeModule Debut = .ProcStartLine("MaMacro", 0) Lignes = .ProcCountLines("MaMacro", 0) .DeleteLines Debut, Lignes End With End Sub