OVH Cloud OVH Cloud

effacer des macros en VBA

7 réponses
Avatar
bourby
bonjour,

dans un classeur, j'ai une macro qui copie 2 onglets (possédant des
macros évènementielles) dans un nouveau fichier, avant d'enregistrer ce
nouveau fichier et de le fermer.

Quel code employer pour effacer les macros évènementielles inutiles du
nouveau fichier avant de l'enregistrer ?

D'avance merci.

Bourby

7 réponses

Avatar
papou
Bonjour
Sub VireLeCodeEvent()
Dim CompVb As VBComponent
For Each CompVb In ActiveWorkbook.VBProject.VBComponents
If CompVb.Type = vbext_ct_Document Then _
CompVb.CodeModule.DeleteLines 1, CompVb.CodeModule.CountOfLines
Next CompVb
End Sub
Cordialement
Pascal

"bourby" a écrit dans le message de
news:
bonjour,

dans un classeur, j'ai une macro qui copie 2 onglets (possédant des
macros évènementielles) dans un nouveau fichier, avant d'enregistrer ce
nouveau fichier et de le fermer.

Quel code employer pour effacer les macros évènementielles inutiles du
nouveau fichier avant de l'enregistrer ?

D'avance merci.

Bourby


Avatar
bourby
bonjour,

merci beaucoup, je vais essayer ça pendant le week-end.

Cordialement

Bourby


papou wrote:
Bonjour






Sub VireLeCodeEvent()
Dim CompVb As VBComponent
For Each CompVb In ActiveWorkbook.VBProject.VBComponents
If CompVb.Type = vbext_ct_Document Then _
CompVb.CodeModule.DeleteLines 1, CompVb.CodeModule.CountOfLines
Next CompVb
End Sub
Cordialement
Pascal

"bourby" a écrit dans le message de
news:

bonjour,

dans un classeur, j'ai une macro qui copie 2 onglets (possédant des
macros évènementielles) dans un nouveau fichier, avant d'enregistrer ce
nouveau fichier et de le fermer.

Quel code employer pour effacer les macros évènementielles inutiles du
nouveau fichier avant de l'enregistrer ?

D'avance merci.

Bourby







Avatar
papou
Oups là !
Attention, j'ai utilisé une référence à Microsoft Visual Basic For
Applications Extensibility 5.3
Cordialement
Pascal

"bourby" a écrit dans le message de news:

bonjour,

merci beaucoup, je vais essayer ça pendant le week-end.

Cordialement

Bourby


papou wrote:
Bonjour






Sub VireLeCodeEvent()
Dim CompVb As VBComponent
For Each CompVb In ActiveWorkbook.VBProject.VBComponents
If CompVb.Type = vbext_ct_Document Then _
CompVb.CodeModule.DeleteLines 1, CompVb.CodeModule.CountOfLines
Next CompVb
End Sub
Cordialement
Pascal

"bourby" a écrit dans le message de
news:

bonjour,

dans un classeur, j'ai une macro qui copie 2 onglets (possédant des
macros évènementielles) dans un nouveau fichier, avant d'enregistrer ce
nouveau fichier et de le fermer.

Quel code employer pour effacer les macros évènementielles inutiles du
nouveau fichier avant de l'enregistrer ?

D'avance merci.

Bourby








Avatar
bourby
euh, Pascal,

en français, ça veut dire quoi?

Cordialement

Bourby

papou wrote:
Oups là !
Attention, j'ai utilisé une référence à Microsoft Visual Basic For
Applications Extensibility 5.3
Cordialement
Pascal

"bourby" a écrit dans le message de news:


bonjour,

merci beaucoup, je vais essayer ça pendant le week-end.

Cordialement

Bourby


papou wrote:

Bonjour






Sub VireLeCodeEvent()
Dim CompVb As VBComponent
For Each CompVb In ActiveWorkbook.VBProject.VBComponents
If CompVb.Type = vbext_ct_Document Then _
CompVb.CodeModule.DeleteLines 1, CompVb.CodeModule.CountOfLines
Next CompVb
End Sub
Cordialement
Pascal

"bourby" a écrit dans le message de
news:


bonjour,

dans un classeur, j'ai une macro qui copie 2 onglets (possédant des
macros évènementielles) dans un nouveau fichier, avant d'enregistrer ce
nouveau fichier et de le fermer.

Quel code employer pour effacer les macros évènementielles inutiles du
nouveau fichier avant de l'enregistrer ?

D'avance merci.

Bourby











Avatar
MichDenis
Bonjour Bourby,

Tu peux utiliser ceci :


Ceci supprimera tous les modules et procédures événementielles et les formulaires.

Et pour appeler cette procédure, tu insères dans une macro :

SupprimeToutCodeEtFormulaire "NomDuClasseur.xls"


'------------------------------------
Sub SupprimeToutCodeEtFormulaire(NomClasseur As String)

Dim VBComp As Object
Dim VBComps As Object

Set VBComps = Workbooks(NomClasseur).VBProject.VBComponents

For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp

End Sub
'------------------------------------


Salutations!




"bourby" a écrit dans le message de news: %
euh, Pascal,

en français, ça veut dire quoi?

Cordialement

Bourby

papou wrote:
Oups là !
Attention, j'ai utilisé une référence à Microsoft Visual Basic For
Applications Extensibility 5.3
Cordialement
Pascal

"bourby" a écrit dans le message de news:


bonjour,

merci beaucoup, je vais essayer ça pendant le week-end.

Cordialement

Bourby


papou wrote:

Bonjour






Sub VireLeCodeEvent()
Dim CompVb As VBComponent
For Each CompVb In ActiveWorkbook.VBProject.VBComponents
If CompVb.Type = vbext_ct_Document Then _
CompVb.CodeModule.DeleteLines 1, CompVb.CodeModule.CountOfLines
Next CompVb
End Sub
Cordialement
Pascal

"bourby" a écrit dans le message de
news:


bonjour,

dans un classeur, j'ai une macro qui copie 2 onglets (possédant des
macros évènementielles) dans un nouveau fichier, avant d'enregistrer ce
nouveau fichier et de le fermer.

Quel code employer pour effacer les macros évènementielles inutiles du
nouveau fichier avant de l'enregistrer ?

D'avance merci.

Bourby











Avatar
jps
bonjour bourby
tu ne pensais quand même pas réveiller papou avec une question aussi
simplette ; j'y réponds donc à sa place ; quand tu es dans VBE, tu fais
Outils/Références et dans la liste tu coches celle que pascal t'a donnée...
voili voilou
jps

"bourby" a écrit dans le message de
news:%
euh, Pascal,

en français, ça veut dire quoi?

Cordialement

Bourby

papou wrote:
Oups là !
Attention, j'ai utilisé une référence à Microsoft Visual Basic For
Applications Extensibility 5.3
Cordialement
Pascal

"bourby" a écrit dans le message de news:


bonjour,

merci beaucoup, je vais essayer ça pendant le week-end.

Cordialement

Bourby


papou wrote:

Bonjour






Sub VireLeCodeEvent()
Dim CompVb As VBComponent
For Each CompVb In ActiveWorkbook.VBProject.VBComponents
If CompVb.Type = vbext_ct_Document Then _
CompVb.CodeModule.DeleteLines 1, CompVb.CodeModule.CountOfLines
Next CompVb
End Sub
Cordialement
Pascal

"bourby" a écrit dans le message de
news:


bonjour,

dans un classeur, j'ai une macro qui copie 2 onglets (possédant des
macros évènementielles) dans un nouveau fichier, avant d'enregistrer
ce





nouveau fichier et de le fermer.

Quel code employer pour effacer les macros évènementielles inutiles du
nouveau fichier avant de l'enregistrer ?

D'avance merci.

Bourby













Avatar
bourby
bonsoir à tous,

encore merci pour ces explications.

Bourby


jps wrote:
bonjour bourby
tu ne pensais quand même pas réveiller papou avec une question aussi
simplette ; j'y réponds donc à sa place ; quand tu es dans VBE, tu fais
Outils/Références et dans la liste tu coches celle que pascal t'a donnée...
voili voilou
jps

"bourby" a écrit dans le message de
news:%

euh, Pascal,

en français, ça veut dire quoi?

Cordialement

Bourby

papou wrote:

Oups là !
Attention, j'ai utilisé une référence à Microsoft Visual Basic For
Applications Extensibility 5.3
Cordialement
Pascal

"bourby" a écrit dans le message de news:



bonjour,

merci beaucoup, je vais essayer ça pendant le week-end.

Cordialement

Bourby


papou wrote:


Bonjour






Sub VireLeCodeEvent()
Dim CompVb As VBComponent
For Each CompVb In ActiveWorkbook.VBProject.VBComponents
If CompVb.Type = vbext_ct_Document Then _
CompVb.CodeModule.DeleteLines 1, CompVb.CodeModule.CountOfLines
Next CompVb
End Sub
Cordialement
Pascal

"bourby" a écrit dans le message de
news:



bonjour,

dans un classeur, j'ai une macro qui copie 2 onglets (possédant des
macros évènementielles) dans un nouveau fichier, avant d'enregistrer






ce

nouveau fichier et de le fermer.

Quel code employer pour effacer les macros évènementielles inutiles du
nouveau fichier avant de l'enregistrer ?

D'avance merci.

Bourby