Re: Suppression Macro (Sélectivement) dans Private Module, ou Standard
Bonjour Vériland, Nanor et tout le Forum
Un petit passage furtif pour féliciter Vincent, car je ne connaissais pas "ProcStartLine" qui est très pratique.
Pour Nanor, donc, ben il suffit de faire
comme dans ce fil
mais au lieu de "VBComponents(ActiveWorkbook.Sheets("Feuil1").CodeName).CodeModule" donc pour un Private Module de Sheet, il faut changer pour :
Sub Supprime_ThisWorkBookMacro()
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.deleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
End Sub
Mais la tu vireras
toutes les macros du Private Module ThisWorkBook...
Maintenant en appliquant la méthode "made in Vériland" (héhéhé) voici ce que celà donne pour virer une macro précise dans le même Private Module :
Sub supprimer_evenementielle()
Dim vbext_pk_Proc As Long
Dim debut As Integer
Dim nblignes As Integer
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
debut = .ProcStartLine("Workbook_Open", vbext_pk_Proc)
nblignes = .ProcCountLines("Workbook_Open", vbext_pk_Proc)
.deleteLines debut, nblignes
End With
End Sub
Ici c'est l'évènementielle "Workbook_Open", mais donc on peut choisir une autre :
Sub supprimer_evenementielle()
Dim vbext_pk_Proc As Long
Dim debut As Integer
Dim nblignes As Integer
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
debut = .ProcStartLine("Workbook_BeforeClose", vbext_pk_Proc)
nblignes = .ProcCountLines("Workbook_BeforeClose", vbext_pk_Proc)
.deleteLines debut, nblignes
End With
End Sub
Super génial, Vériland, je ne sais pas encore à quoi ça va me servir..... Mais ça va me servir !!!
Bonne Appétit
@+Thierry