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 :

[Excel 07] Affectation univoque d'une macro à un projet


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Points : 155
    Points
    155
    Par défaut [Excel 07] Affectation univoque d'une macro à un projet
    Bonjour,

    Une macro Excel 07 appartenant au fichier A crée des feuilles dans un fichier B ainsi qu’un module contenant une macro. Dans l’explorateur VBE, je retrouve bien les différents composants : Projet A, Projet B avec les feuilles, le module et dans le module, la macro.
    Ci-dessous, le code générant la macro:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub new_module(shortname)
    'insère un module appelé "Mod_btn" dans le fichier résultat
    Dim VBComp As VBComponent
    Dim x As Integer
    Workbooks(shortname).Activate
        'Création du module
        Set VBComp = ActiveWorkbook.VBProject.VBComponents.Add(1)
        'Renomme le module
        VBComp.Name = "Mod_btn"
        'Code de la macro dans le module
        With VBComp.codemodule
            x = .CountOfLines
            .InsertLines x + 1, "Sub btn1_clic()"
            .InsertLines x + 2, "dim a as string"
            .InsertLines x + 3, "dim x as integer"
            .InsertLines x + 4, "a = ActiveChart.Name"
            .InsertLines x + 5, "Worksheets(""temp"").Activate"
            .InsertLines x + 6, "x = 1"
            .InsertLines x + 7, "Do While Cells(1, x).Value <> Cells(1, x + 1).Value"
            .InsertLines x + 8, "x = x + 1"
            .InsertLines x + 9, "Loop"
            .InsertLines x + 10, "For i = 1 To x - 3"
            .InsertLines x + 11, "If Cells(1, i).Value = a Then"
            .InsertLines x + 12, "Range(Cells(1, i), Cells(1, i + 3)).Select"
            .InsertLines x + 13, "End If"
            .InsertLines x + 14, "Next"
            .InsertLines x + 15, "End Sub"
        End With
    End Sub
    "shortname" est le nom du fichier destinataire (B dans l'énoncé)
    Lorsque je veux exécuter la macro, Excel réfère au fichier A et, bien sûr, ne la trouve pas.
    Y a-t-il une syntaxe précise pour affecter de manière univoque une macro à un projet ?

    D’avance merci

    Harry

  2. #2
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Points : 155
    Points
    155
    Par défaut Une solution, mais elle manque d'élégance
    En potassant les discussions de ce site, j'ai trouvé un élément de réponse à mon problème.
    J'ai simplement transformé la macro "btn1clic()" en fichier xlam et miracle, cela fonctionne. Cela requiert cependant une intervention manuelle par ordinateur.

    Je reste donc à la recherche d'une solution programmée donc plus élégante.

    A vous lire, ..

    Harry

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

Discussions similaires

  1. [EXCEL] interrompre l'exécution d'une macro
    Par ustilago dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/10/2006, 11h24
  2. [VBA] Excell : demande d'aide pour une macro
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/01/2006, 17h28
  3. [EXCEL] : référence circulaire à cause d'une macro
    Par repié dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/01/2006, 11h41
  4. [VBA Excel] ecrire le caractere " avec une macro
    Par oktopuces dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/09/2005, 23h56

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