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 la macro d'un autre classeur


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
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Par défaut utiliser la macro d'un autre classeur
    Re-bonjour le forum,

    Voici mon nouveau problème :
    J'ai créé une macro outlook pour faire un traitement au niveau des boites mails. Je me sert d'un fichier excel comme "base de données".

    J'ai un fichier qui me sert de base : BDD_traitementMail.xls
    Dans ce fichier j'ai créé une macro mdificationCellule.

    Et tous les jours je dois générer un nouveau classeur xls qui me sert de base de données : BDD_traitementMails_dateDuJour.xls

    J'arrive bien à faire la copie du fichier excel mais je ne sais pas comment faire pour exécuter la macro du fichier BDD_traitementMail.xls sur le fichier BDD_traitementMails_dateDuJour.xls

    Voici le code que j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    If Dir(cheminFichierQuotidien) = "" Then
                'création du fichier à partir du fichier modèle
                FileCopy cheminFichierModele, cheminFichierQuotidien
                nouveauFichier = True
        End If
        Set excelMacro = oApp.workbooks.Open(Path & "D:\Documents and Settings\A770477\Mes documents\Macros\Despatching Message\Modele_BDD_Mails.xls")
        Set workbookExcel = oApp.workbooks.Open(Path & "D:\Documents and Settings\A770477\Mes documents\Macros\Despatching Message\BDD_mails_" & date_jour & ".xls")
        Set sheetExcel = workbookExcel.Sheets("Feuil1")
     
        oApp.Run (workbookExcel.Name & "!modificationCellule")
    Si quelqu'un a une idée à soumettre je suis preneur !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    tu ne nous spécifies pas ce qui ne fonctionne pas
    j'ai un doute sur ce qui est retourné par
    sinon on part bien sur ce qui est proposé dans la à ce sujet :
    http://vb.developpez.com/faqvba/inde...page=3.1.2#Run
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut Exécution de macro Excel à partir de Outlook
    Il y a juste une erreur de syntaxe , à mon avis la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oApp.Run (workbookExcel.Name & "!modificationCellule")
    n'est pas connu .
    il faut récupérer la valeur correspondant à workbookExcel.Name


    J'ai testé un script suivant , il fonctionne :

    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 exec_macro_classeur_excel()
     
    Set oApp = CreateObject("Excel.Application")
     
     
    Set open_fic1 = oApp.workbooks.Open(Path & "e:\aide_vb1.xls")
       Set open_fic2 = oApp.workbooks.Open(Path & "e:\ma_macro.xls")
     
       fichier_macro = oApp.activeworkbook.Name
        oApp.workbooks("aide_vb1.xls").Activate
     
    oApp.Run (fichier_macro & "!modif_fichier")
     
    oApp.activeworkbook.Save
     
     
    End Sub

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Par défaut
    En fait ca m'a mis pas mal de temps avant de me faire tilt... Ce que tu m'a donné codefacile fonctionne très bien mais en fait il fallait que je place la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cheminMacro = oApp.activeworkbook.Name
    avant l'instanciation du deuxième classeur.

    Voici ce que j'ai fais :

    Pour information :
    - excelMacro est le classeur qui comporte la macro nommée "ModificationCellule"
    - workbookExcel est le classeur sur lequel je veux exécuter 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
     
     Set oApp = CreateObject("Excel.Application")
        oApp.Visible = False 'mettre la valeur a true
     
        'Création du fichier bdd_mails_YYYY-MM-DD.xls si il n'existe pas
        If Dir(cheminFichierQuotidien) = "" Then
                'création du fichier à partir du fichier modèle
                FileCopy cheminFichierModele, cheminFichierQuotidien
                nouveauFichier = True
        End If
     
        Dim cheminMacro As String
     
        Set excelMacro = oApp.workbooks.Open(Path & "D:\Test\Modele_BDD_Mails.xls")
        cheminMacro = oApp.activeworkbook.Name
        Set workbookExcel = oApp.workbooks.Open(Path & "D:\Test\BDD_mails_" & date_jour & ".xls")
        Set sheetExcel = workbookExcel.Sheets("Feuil1")
     
     
        oApp.workbooks("BDD_mails_" & date_jour & ".xls").Activate
     
        oApp.Run (cheminMacro & "!ModificationCellule")
    Merci beaucoup pour votre aide !!

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

Discussions similaires

  1. Modifier Macro d'un autre classeur
    Par Fvandermeulen dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2007, 11h44
  2. Lancement d'une macro d'un autre classeur
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/06/2007, 10h31
  3. [VBA-E] Affecter une macro a un autre classeur
    Par Mac Twist dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/01/2007, 16h38
  4. [VBA-E]PB lancer une macro d'une autre classeur
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/07/2006, 18h12
  5. Utilisation d'une macro d'un autre classeur
    Par madislak dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/07/2006, 14h00

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