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 :

Appliquer Macro sur un autre fichier Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2014
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Appliquer Macro sur un autre fichier Excel
    Bonjour,

    J'ai un problème au niveau de mon code, je n'arrive pas à appliquer ma macro sur un autre fichier Excel.
    En faite, j'ai un UserForm avec deux boutons et ma macro dans le même Fichier

    1er bouton : Récupére le chemin du fichier sur lequel je veux appliquer ma macro et le stocke dans une variable "Fichier" (De la forme "C:\...\monfichier.xls" --> Fonctionne bien)
    2ème bouton : Applique la macro sur le fichier stocké dans la variable "Fichier" --> Fonctionne pas 'Fichier en cours d'utilisation' alors qu'il est fermé

    Voici le code du 2eme Bouton ( certainement des erreurs mais je ne comprends pas...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub MacroRess_Click()
     
     Set xlApp = CreateObject("Excel.Application")
     Set xlBook = xlApp.Workbooks.Add(Fichier)
     xlApp.Application.Run "C:\Users\...\FichierMacro.xlsm!Module1!Macro1"
     xlApp.ActiveWorkbook.Save
     xlApp.ActiveWorkbook.Close
     Set xlApp = Nothing
     Set xlBook = Nothing
     
    End Sub
    Toute aide est la bienvenue !

  2. #2
    Membre actif Avatar de vanhoa
    Homme Profil pro
    Analyste Financier
    Inscrit en
    Octobre 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Analyste Financier
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 117
    Points : 253
    Points
    253
    Par défaut
    Bonjour,

    Deja, tes variables ne sont pas definies. Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim xlApp as Application
    Ensuite, tu as mis "C:\Users\...\FichierMacro.xlsm!Module1!Macro1"
    J'imagine que c'est une adresse que tu as copie colle et remplace par ce qui etait a la base non?
    les "..." veulent dire quelque chose. la ou tu la copie, c'etait simplement pour racourcir l'adresse par manque de place, mais il faut mettre tout l'ensemble.
    ou sinon, si le nom est stocke dans une variable, utilise cette variable (mais il faut la definir en public en tete de module pour qu'elle soit accessible dans cette procedure)

    De meme xlBook n'est pas definie

    vanhoa

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2014
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Merci pour ta réponse. Malheureusement, sa ne marche toujours pas :/
    Voici le code que j'ai actuellement :
    Le chemin "C:\Users\...\FichierMacro.xlsm!Module1!Macro1" sert à indiquer l'endroit ou est ma macro (je ne sais pas si c'est correct de l'indiquer comme sa, et pour les "..." dans le chemin, je l'est mis en entier dans mon code VBA, pas de soucis à ce niveau la). Ma macro se situe dans le même classeur que mon UserForm.

    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
     
    Dim Fichier As String
    Dim xlApp As Application
    Dim xlBook As Workbook
     
    Private Sub MacroRess_Click()
     
     Set xlApp = CreateObject("Excel.Application")
     Set xlBook = xlApp.Workbooks.Add(Fichier)
     xlApp.Visible = False
     xlApp.Application.Run "C:\Users\...\FichierMacro.xlsm!Module1!Macro1"
     xlApp.ActiveWorkbook.Save
     xlApp.ActiveWorkbook.Close
     xlApp.Visible = True
     Set xlApp = Nothing
     Set xlBook = Nothing
     
    End Sub

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonsoir,

    tout d'abords une question , pourquoi ouvre-tu une autre instance d'excel ? ne peu tu pas ouvrir ton deuxième classeur dans la même instance que le premier ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2014
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    En faite, étant débutant en VBA, je me suis inspirer de code que j'ai trouvé sur différents forums et la plupart faisait ouvrir une autre instance Excel.
    Après, j'ai vu que faillait obligatoirement ouvrir le fichier Excel pour lui faire appliquer la macro donc je pensais que ce code convenait...
    Finalement, ce n'est peut-être pas le cas :/

Discussions similaires

  1. [XL-2007] se positionner sur un autre fichier excel
    Par marcelisa2 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 14/03/2012, 11h58
  2. Réponses: 2
    Dernier message: 01/07/2010, 18h05
  3. [XL-2007] Executer macro sur un autre fichier
    Par jfdebutant dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/11/2009, 17h23
  4. Réponses: 4
    Dernier message: 30/11/2007, 08h55
  5. [VBA-E] Pointer sur un autre fichier Excel
    Par Yop dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/12/2006, 19h43

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