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 :

Une macro qui permet de de referencer un .xla sur plusieurs CL avec un code dans le "thisworkbook"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 71
    Par défaut Une macro qui permet de de referencer un .xla sur plusieurs CL avec un code dans le "thisworkbook"
    Hello tous le monde

    J'ai un programme qui crée plusieurs fichiers excel et je voudrais creer un script qui permet de donné pour reference un fichier .xla (c'est à dire automatiser la procedure: Alt+F11 --> outils --> reference --> cocher le xla) + rajouter un code dans le 'thisworkbook" (idem dans le alt+F11 --> this workbook)

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 308
    Par défaut
    Bonjour,

    cette ligne de code, dans le WorkBook_Open, te permet de référencer la xla...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ThisWorkbook.VBProject.References.AddFromFile _
    "C:\Documents and Settings\Ta_Macro.xla"
    Chemin et nom de la macro à adapter...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 71
    Par défaut
    ok merci et pour le code dans le "thisworkbook"
    Exemple: je souhaite que le fichier A.xls rajoute un code dans le "thiswokbook" du fichier .xls

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

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Un tuto pour manipuler l'éditeur de macro par macro, et donc écrire du code par macro
    http://silkyroad.developpez.com/VBA/VisualBasicEditor/

    Tu devrais y trouver ton bonheur

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 71
    Par défaut
    Merci j'ai trouvé ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        'Ajoute une macro dans le module
        With VBComp.CodeModule
            X = .CountOfLines
            .InsertLines X + 1, "Sub laMacro()"
            .InsertLines X + 2, "Range(""A1"").Value = ""Coucou"""
            .InsertLines X + 3, "End Sub"
        End With
    Mais pas j'ai pas trop compris la syntaxe ici je dois remplacer "CodeModule" par le code de mon module donc "thisworkbook"? mais ensuite je coprend l'autre paris du code.. la fonction... ou faut il que je copie le code que je souahite transferer?

    Merci

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 308
    Par défaut
    Re-,

    le code suivant ajoute un code évènementiel dans le ThisWorkBook du classeur actif

    Lorsque tu créés ton fichier (WorkBooks.Add....), tu es donc dans ce nouveau classeur..

    Essaie :

    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
    Sub Insert_Proc()
    'nécessite une référence à :
    'Microsoft Visual Basic For Applications Extensibility 5.3
    Dim DebutCode As Long
    Dim S As String
     
    S = "ThisWorkbook.VBProject.References.AddFromFile _" & vbLf
    S = S & """C:\Documents and Settings\TaMacro.xla"""
     
    With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
        DebutCode = .CreateEventProc("Open", "Workbook")
        .InsertLines DebutCode + 1, S
    End With
     
    End Sub
    N'oublie pas d'activer la référence citée en haut du code (ne sera utile que pour le classeur qui exécute le code....)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 71
    Par défaut
    Citation Envoyé par mapeh Voir le message
    Re-,

    le code suivant ajoute un code évènementiel dans le ThisWorkBook du classeur actif

    Lorsque tu créés ton fichier (WorkBooks.Add....), tu es donc dans ce nouveau classeur..

    Essaie :

    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
    Sub Insert_Proc()
    'nécessite une référence à :
    'Microsoft Visual Basic For Applications Extensibility 5.3
    Dim DebutCode As Long
    Dim S As String
     
    S = "ThisWorkbook.VBProject.References.AddFromFile _" & vbLf
    S = S & """C:\Documents and Settings\TaMacro.xla"""
     
    With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
        DebutCode = .CreateEventProc("Open", "Workbook")
        .InsertLines DebutCode + 1, S
    End With
     
    End Sub
    N'oublie pas d'activer la référence citée en haut du code (ne sera utile que pour le classeur qui exécute le code....)

    Ok merci pour la reponse

    Ici on active le addin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    S = "ThisWorkbook.VBProject.References.AddFromFile _" & vbLf
    S = S & """C:\Documents and Settings\TaMacro.xla"""

    mais ici j'ai pas trop compris la synthaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .InsertLines DebutCode + 1, S
    ou est ce que je peux rajouter mon code ?

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 308
    Par défaut
    Re-,

    Tu as déjà un code de fait?

    J'ai un programme qui crée plusieurs fichiers excel
    Montre-le, et on pourra peut-être t'aider....

    Je te conseille également

    pour la ligne de code que tu ne comprends pas

    Et S n'est nullement un Add-in, mais une variable String, qui a la valeur marquée en Rouge....

    Lorsque tu as inséré cette variable, elle devient une ligne de procédure, dans le WorkBook_Open

Discussions similaires

  1. Existe-il une macro qui permet de différencier des cellules identiques ?
    Par marion1857 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/04/2013, 16h57
  2. Macro qui permet de décocher une checkbox
    Par vince2712 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/08/2009, 08h49
  3. Macro qui permet de mettre une macro sur une poste
    Par Tinien dans le forum VBA Word
    Réponses: 4
    Dernier message: 26/11/2008, 01h17
  4. creation d'une macro qui permet d'imprimer
    Par INCO13 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/06/2008, 17h22

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