Autres Suppression du code d'une sheet

bernardrustrel

XLDnaute Occasionnel
Bonjour à tous
J'ai créé un classeur (Xl2007) avec du code sur certaines feuilles. Le code de ces dernières m 'est surtout utile à la mise en forme des feuilles.
Or je communique ce classeur et les données figurant sur ces feuilles à plusieurs personnes et je ne voudrais pas que le code crée y apparaisse.
Pour ce faire je voudrais pouvoir effacer le code rattaché à chaque feuille. Et j'avoue m'y casser les dents aussi fais je appel à vos compétences...
Si l'un de vous avait une solution à me proposer je lui serai tout ouïe....et l'en remercie par avance
Bien cordialement. Bernardrustrel
 

Nico_J

XLDnaute Junior
Bonjour, voici un code à adapter

VB:
'Supprimer la macro nommée "MaMacro" dans le "module3"
Sub supprimerUneMacroPrecise()
Dim Debut As Integer, Lignes As Integer
    With ThisWorkbook.VBProject.VBComponents("Module3").CodeModule 'a adapter
        Debut = .ProcStartLine("MaMacro", 0)
        Lignes = .ProcCountLines("MaMacro", 0)
        .DeleteLines Debut, Lignes
    End With
End Sub

Bonne chance
 

Nico_J

XLDnaute Junior
Bonjour,
en fouillant un peu dans mes archives

VB:
'Comment supprimer tout le code du classeur actif ?
Sub SupprToutCodeVBA()
'L Longre, mpfe
Dim VBC As Object
With ActiveWorkbook.VBProject
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.DeleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With
MsgBox "Modules et macros du classeur actif supprimées.", _
vbInformation
End Sub
 

job75

XLDnaute Barbatruc
Pour pouvoir modifier le VBAProject il faut avoir coché l'option :

- sur Excel 2003 et versions antérieures Faire confiance au projet Visual Basic (menu Outils-Macro-Sécurité-Editeurs approuvés)

- sur Excel 2007 et versions suivantes Accès approuvé au modèle d'objet du projet VBA (onglet Fichier-Options-Centre de gestion de la confidentialité-Paramètres...-Paramètres des macros).
 

bernardrustrel

XLDnaute Occasionnel
Bonjour, voici un code à adapter

VB:
'Supprimer la macro nommée "MaMacro" dans le "module3"
Sub supprimerUneMacroPrecise()
Dim Debut As Integer, Lignes As Integer
    With ThisWorkbook.VBProject.VBComponents("Module3").CodeModule 'a adapter
        Debut = .ProcStartLine("MaMacro", 0)
        Lignes = .ProcCountLines("MaMacro", 0)
        .DeleteLines Debut, Lignes
    End With
End Sub

Bonne chance


Bonjour
Merci pour cette réponse.
Pour moi il ne s'agit que d'effacer le code lié aux feuilles, le code se trouvant dans les modules doit étre conserver.
D'ou la question, comment transposer ce code particuliérement adapté aux macros se trouvant dans un module à celui (ou à ceux) se trouvant dans une feuille.
Merci encore, cordialement
Bernard
 

youky(BJ)

XLDnaute Barbatruc
Bonjour à tous,
exemple pour supprimer le code de Feuil2 sheets à adapter ou à mettre en boucle
Suivre les conseils aussi de Job75 sinon bug.
Bruno
VB:
Sub effacevba()
'exemple pour effacer code de Feuil2
 With ThisWorkbook.VBProject.VBComponents("Feuil2").CodeModule
        For i = .CountOfLines To 1 Step -1
            .DeleteLines i
            DoEvents
        Next
    End With
End Sub
 
Haut Bas