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 :

suppression de macros par macro [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 53
    Par défaut suppression de macros par macro
    Re

    Bon j'ai essayé mais ca ne veux pas
    voici mon code test qui doit supprimer les macros de la feuille 1 se nommant monBouton1_Click(), monBouton2_Click(),....... monBouton25_Click(),

    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
    Sub Bouton223_QuandClic()
     
    Dim Debut As Integer, Lignes As Integer
    Dim NomMacro As String
     
    NomMacro = "monBouton" & i
     
    For i = 1 To 25
     
        With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
        Debut = .ProcStartLine(NomMacro, 0)
        Lignes = .ProcCountLines(NomMacro, 0)
        .DeleteLines Debut, Lignes
    End With
     
     Next i
     
    End Sub

    total erreur d'execution '35'
    sub ou fonction non definie a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debut = .ProcStartLine(NomMacro, 0)
    un ptit indice serait le bienvenue.

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Est ce que tuas bien activé la référence
    Microsoft Visual Basic for Applications Extensibility 5.3.
    ???

    Je suppose que le code viens de la
    A par la référence le code ma l'air bon.

  3. #3
    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
    Je ne comprends pas ton code
    Tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomMacro = "monBouton" & i
    avant de donner une valeur à i... Tu peux expliquer ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 53
    Par défaut reference bien activée
    re
    oui la reference en question est bien activée sur vba

    en ce qui concerne le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomMacro = "monBouton" & i
    c'est que mes macros a supprimer portent toute le même nom a savoir

    private sub monBouton1_Click(),
    private sub monBouton2_Click(),
    .
    .
    .
    private sub monBoutoni_Click(),


    Voila j'espere avoir repondu a vos question

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je crois que tu n'as pas compris ce que te disait ouskel'n'or

    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomMacro = "monBouton" & i
    devrait se trouver dans la boucle, car le i ne change pas à l'extérieur de celle-ci.


    De plus il s'agit de procédure évènementielle sur des boutons, hors juste en mettant le nom du bouton et son numéro, cela ne devrait pas passer (en théorie), il faut une concaténation avec le click (à vérifier).

    Philippe

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 53
    Par défaut toujours pas ca
    re
    bon j'ai essayé ca

    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
    20
    Sub Bouton223_QuandClic()
     
    Dim Debut As Integer, Lignes As Integer
    Dim NomMacro As String
     
    NomMacro = "monBouton" & i
     
    For i = 1 To 25
     
     NomMacro = "Sub monBouton" & i & "_Click()"
     
        With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
        Debut = .ProcStartLine(NomMacro, 0)
        Lignes = .ProcCountLines(NomMacro, 0)
        .DeleteLines Debut, Lignes
    End With
     
     Next i
     
    End Sub

    puis ca


    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
    20
    Sub Bouton223_QuandClic()
     
    Dim Debut As Integer, Lignes As Integer
    Dim NomMacro As String
     
    NomMacro = "monBouton" & i
     
    For i = 1 To 25
     
     NomMacro = "monBouton" & i & "_Click()"
     
        With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
        Debut = .ProcStartLine(NomMacro, 0)
        Lignes = .ProcCountLines(NomMacro, 0)
        .DeleteLines Debut, Lignes
    End With
     
     Next i
     
    End Sub
    mais toujours la meme erreur d'execution '35'

    sub ou fonction non définie

    a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debut = .ProcStartLine(NomMacro, 0)

    Voila ou j'en suis

  7. #7
    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
    Et si tu nous disais ce que tu veux obtenir, au bout du bout... Il y a peut-être une solution à laquelle tu n'as pas songé... Comme supprimer l'userform par exemple.
    Pendant que j'y pense, ils sont où tes boutons ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 53
    Par défaut mon objectif en detail
    re
    alors ayant precedemment reussi a creer dynamiquement des bouton avec macro associé grace a vous tous encore merci

    ces boutons se nomment VOIR0, VOIR1 ..... VOIRi

    Seulement ces boutons sont supprimés dynamiquement grace a vous encore merci

    mais la suppression dynamique ne supprime pas les macros associées a savoir

    Sub VOIR0_Click(), Sub VOIR1_Click() , Sub VOIRi_Click()

    alors quand les boutons sont recrées il ya un conflit a cause de ces procedures qui portent le meme nom d'ou le pb de supprimer dans le code les procédures


    Tout se passe dans une feuille et pas dans un userform

    voila merci

  9. #9
    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
    Ok. Et si tu adaptes bêhêhêhêtemement le code de la FAQ, ça donne ça qui chez moi fonctionne.
    J'ai placé trois boutons sur une feuille de calculs
    Le troisième me sert pour effacer les macros des deux autres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton3_Click()
    Dim NomMacro As String, Wb As Workbook
        'Nécessite d'activer la référence '"Visual basic For Application Extensibility 5.3"
     
        Set Wb = Workbooks("Classeur1.xls")
        For i = 1 To 2
            NomMacro = "CommandButton" & i & "_Click"
            SupprimerMacroPrecise Wb, "Feuil1", NomMacro
        Next
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'où mdl est le module de feuil1
    Sub SupprimerMacroPrecise(Wb As Workbook, Mdl As String, NomMacro As String)
        Dim Debut As Integer, Lignes As Integer
     
        With Wb.VBProject.VBComponents(Mdl).CodeModule
            Debut = .ProcStartLine(NomMacro, 0)
            Lignes = .ProcCountLines(NomMacro, 0)
            .DeleteLines Debut, Lignes
        End With
    End Sub
    Tu adaptes le nom des boutons sans les parenthèses... Seulement le nom
    Bon après-midi

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 53
    Par défaut un grand merci
    un grand merci a tous pour vos infos

    desolé je ne suis qu'apprenti developpeur (c'est quelquechose que je refoulais)
    mais j'ai été obligé de m'adonner au vba et je dois dire qu'avec ce projet de masque de saisie et l'énorme aide de ce forum je m'aperçois qu'on peut réaliser des interfaces sympatiques

    Merci et a bientot pour de nouvelles aventures

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

Discussions similaires

  1. [XL-2010] Ajouter une macro par macro sans activer de référence?
    Par EmmanuelleC dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/05/2012, 14h38
  2. [XL-2007] Stopper une macro par macro
    Par GuyXL dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/01/2011, 19h48
  3. [E-07] Comment affecter par macro une macro à un objet
    Par BATISSEUR dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2009, 09h49
  4. Envoyer resultat d'un tri par macro par email
    Par eric8787 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/04/2008, 16h15
  5. suppression de ligne par macro
    Par stefano dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/02/2008, 14h41

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