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 :

Utiliser une macro complémentaire via un Command Button


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 163
    Points : 115
    Points
    115
    Par défaut Utiliser une macro complémentaire via un Command Button
    Bonjour à tous,

    Alors voilà, j'ai crée une macro complémentaire. Jusque là tout va bien.
    Je l'ais chargé, je ne sais pas trop quel mot utilisé mais elle est dans la liste de mes macros complémentaires disponibles et cochées.

    A présent je voudrais que lorque je click sur mon CommandButton, il m'execute ma macro. Sauf que j'obtiens le message d'erreur suivant: Erreur de compilation: procédure attendue , et non une varaible

    Voici le code de la macro complémentaire
    Nom de fichier: MacroComplementaire_V0.xla
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub MacroComplementaire()
     MsgBox "Toto"
    End Sub
    Et le code de mon CommandButton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub MacroComplementaire_Click()
     
        MacroComplementaire
     
    End Sub
    Merci.

  2. #2
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut
    Et avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub MacroComplementaire_Click()
     
        Call MacroComplementaire
     
    End Sub

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 163
    Points : 115
    Points
    115
    Par défaut
    Avec Call, j'ai la même erreur.
    Avec Application.Run, ben pas d'erreur mais ça avance pas à grand chose car il fait rien.

    Est-ce que j'ai loupé quelque chose sur le principe de fonctionnement?

  4. #4
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut
    Il faudrait que ton code soit directement dans le click du bouton, cela éviterai un appel inutile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub MacroComplementaire_Click()
         MsgBox "Toto"
    End Sub
    avec bien entendu MacroComplementaire comme nom du bouton et pas comme nom de sub.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 163
    Points : 115
    Points
    115
    Par défaut
    Si c'était si simple, ça serait déjà fait ainsi. Et ceci n'est en aucun cas un appel inutile. C'est du code récurrent qui se trouve dans la macro complementaire. Le msgbox "toto" n'étant là que pour faire le test, car si lui fonctionne le reste viendra.

    Donc, aucune idée du pourquoi, du comment de la chose?

    Est-ce normalement faisable? Si oui, vous avez déjà rencontré un tutoriel là-dessus, car j'ai pas trouvé.

  6. #6
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut
    Le problème ne viendrait pas du fait que tu as un bouton et un sub qui porte le même nom (macrocompelentaire) ? Je ne crois pas que VBA l'autorise, cela génère des conflits.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 163
    Points : 115
    Points
    115
    Par défaut
    Bon ben, j'y avais pas fait attention à ça. C'est du code que ej dois modifier, et moi j'ai l'habitude de mettre CB devant quand c'est un nom de bouton. Passons.

    A présent, j'ai une autre erreur, qui certes est pas top, mais déjà un peu mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub CB_MacroComplementaire_Click()
        MsgBox "toto1"
        Call MacroComplementaire
        MsgBox "toto2"
    End Sub

    Erreur: Sub ou Function non définie

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 163
    Points : 115
    Points
    115
    Par défaut
    Comme dans le .xla , elle est contenue dans un module, j'ai mis le nom du module . la macro.
    Ca a rien changé.

  9. #9
    Expert éminent sénior

    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
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir

    tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    Application.Run "'NomFichier.xla'!Module1.MacroComplementaire"
    End Sub

    bonne soirée
    michel

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 163
    Points : 115
    Points
    115
    Par défaut
    Merci SilkyRoad, ça marche impeccable.

    Et merci à zandru pour son aide.

    J'ai quand même une question, pourquoi faut'il spécifier le nom de la macro complémentaire? Excel VBA n'est pas capable de linker?

  11. #11
    Expert éminent sénior

    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
    Points : 20 147
    Points
    20 147
    Par défaut
    Bonjour


    J'ai quand même une question, pourquoi faut'il spécifier le nom de la macro complémentaire? Excel VBA n'est pas capable de linker?
    Cela permet de différencier deux procédures qui pourraient être nommées à l'indentique, dans deux classeurs différents.


    bonne journée
    michel

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    J'ajouterais qu'un classeur de macros complémentaires (.xla) reste avant tout un classeur.

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

Discussions similaires

  1. [XL-2003] Utilisation de variable d'une macro complémentaire à partir d'un module
    Par ivanG dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/08/2014, 14h05
  2. Réponses: 4
    Dernier message: 02/11/2011, 18h32
  3. Installer une macro Word via une appli distante
    Par JnewB dans le forum VBA Word
    Réponses: 3
    Dernier message: 28/09/2006, 14h17
  4. [VBA] utiliser une macro contenue dans un autre classeur
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 01/02/2006, 18h46
  5. Macro utilisant une macro...
    Par Gogoye dans le forum C
    Réponses: 2
    Dernier message: 29/10/2003, 14h22

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