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 :

[E-07] Comment affecter par macro une macro à un objet


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [E-07] Comment affecter par macro une macro à un objet
    Bonjour,

    j'ai le pb suivant:
    D'un fichier source ( "S") je crée un nouveau workbook("W") dans lequel j'ajoute un nouveau module M où j'écris une sub MACRO1().
    Je crée ensuite, dans W, un bouton "B" auquel je veux affecter MACRO1, du workbook W.

    tout se déroule bien sauf que:
    la macro affectée à B appartient à un code module de S, pas à celui de W
    En gros j'ai B!MACRO1 alors que je voudrais juste MACRO1

    au final, si MACRO1 existe sous S alors pas de pb tant que S est ouvert. En revanche si tel n'est pas le cas, ou si je veux utiliser W sans S ça plante.

    Je suppose qu'il faut que j'indique l'endroit où doit se situer MACRO1 (W!M), mais je ne sais pas comment faire.

    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
     
     
    W.Activate
       Set VBComp = wb.VBProject.VBComponents.Add(1)
        'Renomme le module
        VBComp.Name = "Utilitaires"
     
        'Ajoute une macro dans le module
        With VBComp.codemodule
            X = .CountOfLines
            .InsertLines X + 1, "Sub Fermerfichier()"
            .InsertLines X + 2, "activeworkbook.close(false)"
            .InsertLines X + 3, "End Sub"
        End With
     
     Range("a1").Select
        ActiveSheet.Buttons.Add(1, 15, 70, 15).Select
        selection.OnAction = "Fermerfichier"
    merci!

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Comme tu utlises la variable 'W' pour ton Workbook, il faut que tu ajoutes un VBComponent à 'W' et non à 'wb'...

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    merci
    j'ai fait une erreur en recopiant mon code ( c'est tout moi...)
    en réalité c'est bien W que j'utilise,sinon la procédure bogguerai sur le nom du classeur...et elle ne boggue pas

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Fais donc plutôt un copier-coller de ton code. Ça serait bien plus utile pour voir ce qui s'y passe vraiment.

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    pas possible, c'est trop long et pas compréhensible hors du cadre général ( macros imbriquées) .
    tant pis, merci quand même.

  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
    Points : 15 546
    Points
    15 546
    Par défaut
    Je n'ai pas compris ta demande mais regarde toujours ici, tu as le code pour écrire une macro par macro, cette macro pouvant être le clic d'un objet placé dans une feuille de calculs ou simplement une macro pour te dire bonjour à l'ouverture du classeur
    Bonne journée

Discussions similaires

  1. [WD-2007] Affecter une macro à une image
    Par aperrottet dans le forum VBA Word
    Réponses: 2
    Dernier message: 02/02/2011, 23h48
  2. Réponses: 8
    Dernier message: 15/12/2009, 11h04
  3. [XL-2007] Comment rétablir Excel suite à une macro malveillante?
    Par mobiclick dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/12/2009, 23h08
  4. [Excel 07] Affectation univoque d'une macro à un projet
    Par Harry Covair dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/02/2009, 14h15
  5. Comment faire fonctionner une macro à une heure precise
    Par dreloman dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/06/2008, 00h46

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