Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro AutoOpen

4 réponses
Avatar
Jepac
Bonsoir,

J'ai dans un document une macro autoOpen. Je souhaiterai pouvoir
détruire cette macro avec une autre macro.

Merci pour votre aide
Jean-Paul

4 réponses

Avatar
Geo

Bonsoir,

J'ai dans un document une macro autoOpen. Je souhaiterai pouvoir détruire cette macro
avec une autre macro.

Merci pour votre aide
Jean-Paul


Vous ne voulez vraiment pas le faire à la main ?
C'est pas bien compliqué.
Tuer une macro en plein vol comporte le risque de planter Word.

--
A+

Avatar
Anacoluthe
Bonjour !

'Jepac' nous a écrit ...
J'ai dans un document une macro autoOpen. Je souhaiterai pouvoir
détruire cette macro avec une autre macro.


Le plus simple est de supprimer tout le module :

Public Sub SupprimeModule1()
Dim myModule As VBComponent
Set myModule = ActiveDocument.VBProject.VBComponents("Module1")
ActiveDocument.VBProject.VBComponents.Remove myModule
End Sub

Si SupprimeModule1 est dans Module1 elle se /suicide/ évidemment !!!
(Penser à référencer 'MS VBA Extensibility' dans VBE / Outils / Référence)

Une autre méthode est de supprimer les lignes de code :

With ActiveDocument.VBProject.VBComponents("Module1").CodeModule
.DeleteLines 1, .CountOfLines
End With

Ici on détruit toutes les lignes de Module1 mais on garde Module1.
Avec cette méthode on peut n'en supprimer qu'une partie.

Anacoluthe
« Le meurtre parfait est de pousser l'autre au suicide. »
- Nathalie DELOURME

Avatar
Geo

« Le meurtre parfait est de pousser l'autre au suicide. »


Tout à fait de circonstance.
On suicide même les autres macros.

--
A+

Avatar
Jepac
Merci

Jean-Paul

Bonjour !

'Jepac' nous a écrit ...
J'ai dans un document une macro autoOpen. Je souhaiterai pouvoir
détruire cette macro avec une autre macro.


Le plus simple est de supprimer tout le module :

Public Sub SupprimeModule1()
Dim myModule As VBComponent
Set myModule = ActiveDocument.VBProject.VBComponents("Module1")
ActiveDocument.VBProject.VBComponents.Remove myModule
End Sub

Si SupprimeModule1 est dans Module1 elle se /suicide/ évidemment !!!
(Penser à référencer 'MS VBA Extensibility' dans VBE / Outils / Référence)

Une autre méthode est de supprimer les lignes de code :

With ActiveDocument.VBProject.VBComponents("Module1").CodeModule
.DeleteLines 1, .CountOfLines
End With

Ici on détruit toutes les lignes de Module1 mais on garde Module1.
Avec cette méthode on peut n'en supprimer qu'une partie.

Anacoluthe
« Le meurtre parfait est de pousser l'autre au suicide. »
- Nathalie DELOURME