IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

macro qui s'auto-supprime


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut macro qui s'auto-supprime
    Bonjour à tous,

    Quelqu'un a-t-il déjà auto-supprimé un module VBA (si c'est possible)?

    Je voudrai supprimer le code à la fin de la macro, permettant de ne pas le livrer dans le fichier finalisé.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 572
    Par défaut
    tu copie les feuilles utiles du fichier dans un autre fichier, et c'est celui que tu transmetra

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut did103
    En toute logique un code ne peu pas s'auto-supprimer
    Par contre rien ne t'oblige à ce que le code soit dans le même classeur que celui sur lequel il agit, à condition d'être sur un module général.
    A+

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour


    Cet exemple sauvegarde le classeur contenant la macro, puis supprime la totalité des procédures.
    La macro "SupprimeTout" est aussi détruite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub SupprimeTout()
        'Enregistre le classeur et supprime la totalité des procédures
        Dim VbComp As VBComponent
     
        'Enregistre le classeur
        ThisWorkbook.SaveAs "C:\Sauvegarde.xls"
     
        For Each VbComp In ThisWorkbook.VBProject.VBComponents
            Select Case VbComp.Type
                Case 1 To 3
                    ThisWorkbook.VBProject.VBComponents.Remove VbComp
                Case Else
                    With VbComp.CodeModule
                    .DeleteLines 1, .CountOfLines
                    End With
            End Select
        Next VbComp
     
    End Sub

    http://silkyroad.developpez.com/VBA/VisualBasicEditor/


    bon après midi
    michel

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut
    à tous pour votre aide.

    C'est la solution de SilkyRoad qui me semble la meilleure et la plus adaptée.
    Je teste cela...

    Michel,
    le type VBComponent, c'est en 2007
    parcequ'en 2003, il n'est pas reconnu...
    Si je supprime la ligne de déclaration, j'ai une erreur 1004:
    "L'accès par programme au projet VB n'est pas fiable"

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    As-tu activé la référence "Visual basic For Application Extensibility 5.3"
    Dans l'éditeur VB -> Outils -> Références

  7. #7
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour


    Si je supprime la ligne de déclaration, j'ai une erreur 1004:
    "L'accès par programme au projet VB n'est pas fiable"

    Menu Outils
    Macro
    Sécurité
    Onglet "Sources fiables"
    Coche les deux options
    Clique sur le bouton OK pour valider


    bonne journée
    michel

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut

    Merci, pour l'info de la coche dans la sécu des macros.
    Je n'y avais jamais fait attention.

    Ouskél'Nord, je n'ai pas cette possibilité.

    Cela marche très bien si j'enlève le type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim VbComp As VBComponent
    Pour compliquer un peu (et surtout comprendre le code), peux-t-on sélectionner les modules à supprimer

    Le Case 1 à 3 donne quoi? Et le Else, à quoi sert-il?
    J'ai rien trouvé dans l'aide VBA sur ces "composants VB", les VB Comp...

  9. #9
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, regarde le lien donné par SilkyRoad http://silkyroad.developpez.com/VBA/...cEditor/#LIV-D

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut
    Je n'avais pas vu le lien...

    Tout est OK. A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro qui fonctionne en faisant F8 mais pas en auto
    Par krapoulos dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 05/06/2015, 14h20
  2. [XL-2002] MACRO qui supprime données identiques
    Par fredsco21 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/08/2014, 18h12
  3. Réponses: 0
    Dernier message: 29/10/2013, 17h58
  4. [XL-2010] Macro qui compare 2 colonnes de 2 feuilles excel et qui supprime les différences.
    Par a.saussois dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 29/11/2010, 18h35
  5. Une macro qui supprime les macros ?
    Par GodOfTrolls dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/06/2008, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo