Créer une macro permettant d'effacer des modules, des userforms,

Résolu
yao.chris Messages postés 95 Statut Membre -  
yao.chris Messages postés 95 Statut Membre -
Bonjour,

connaissez vous le moyen de créer une macro permettent d'effacer des modules, des userforms, code de thisworkbook et code feuille ?
J'ai essayé les codes trouvés sur le net mais aucun ne fonctionnent.

Merci pour votre aide.
yao

5 réponses

  1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    Salut le Forum

    As-tu ajouté la référence
    "Microsoft visual Basic For Application Extensenbility x.x" ?

    Mytå
    0
  2. yao.chris Messages postés 95 Statut Membre 2
     
    Bonsoir Myta,

    Merci pour ta réponse.
    Oui je l'ai fait mais sans résultat.
    Y a t'il un moyen de créer une macro sans ajouter cette référence ?

    Merci pour votre aide.
    yao
    0
  3. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    Salut le Forum

    Pour effacer les modules de code.
    Sub SupprimeModule()
    'Macro de suppression des modules de code du classeur
        Dim i As Integer
        For i = ThisWorkbook.VBProject.VBComponents.Count To 1 Step -1
            If ThisWorkbook.VBProject.VBComponents.Item(i).Type = 1 Then
                ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents.Item(i)
            End If
        Next i
    End Sub
    

    Dans la partie sécurité des macros tu as un onglet "Éditeurs approuvés".
    Dans cet onglet il faut cocher "Faire confiance au projet Visual Basic".

    Mytå
    0
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
       
      Re le Forum

      Complément d'information
              Type 1: Module Standard
      Type 2: Module de Classe
      Type 3: Userform
      Type 100: Module de Feuille ou ThisWorkbook
      Mytå
      0
  4. yao.chris Messages postés 95 Statut Membre 2
     
    Bonsoir Mytå,

    Je viens de mettre en application ta macro.
    Tout marche super bien sauf le Type 100, j'ai une erreur d'exécution sur le Focus.

    Le plus important pour moi était de supprimer les Userforms et les modules.
    Les Type 1 et 3 fonctionnent à merveille.

    Merci beaucoup pour ton aide.

    Bonne nuit.
    yao
    0
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
       
      Re le Forum

      Pour effacer tout les modules VBA du fichier.
      Sub DeleteAllCodeInModule()
          Dim VBCodeMod As Object
          Dim I As Long
          With ThisWorkbook.VBProject
              For I = 1 To .VBComponents.Count
                  Set VBCodeMod = .VBComponents(I).CodeModule
                  VBCodeMod.DeleteLines 1, VBCodeMod.CountOfLines
              Next I
          End With
      End Sub

      Mytå
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yao.chris Messages postés 95 Statut Membre 2
     
    Bonjour Mita,

    Alors là, bravo !!!
    C'est exactement ce que je cherchais, et ça marche super bien.

    Merci pour ton aide précieuse.

    Bonne journée et merci encore.
    yao
    0