Lancement d'une macro depuis un autre fichier : gestion des noms de fichiers

Cekankonvaou

XLDnaute Junior
Bonjour à tous,

Tout d'abord, merci à tous les contributeurs de ce forum qui m'ont permis d'avancer petit à petit dans mes petits dévellopements de macros.
J'ai cherché réponse à ma question du jour mais sans succès...

J'ai 2 fichier : PERSO.xlsm et PARTAGE.xlsm

Le fichier Perso sera dupliqué vers plusieurs utilsateurs (donc nom et emplacement variables).
Le fichier Partage sera géré par une seule personne.

Dans un premier temps, j'ai dévellopé dans PERSO une macro (BAO) qui va chercher des infos dans PARTAGE et les copie dans PERSO==>fonctionnement OK

Pour des raisons de gestion de la macro, je souhaiterai n'avoir dans PERSO qu'une macro (Lance_Perso) qui ouvrirait PARTAGE et lancerait BAO.

J'ai donc mis dans PERSO :

Sub Lance_Perso()


ChDir "C:\Partage"
Workbooks.Open Filename:= _
"C:\Partage\Boite-Outils-Partage.xlsm"
Application.Run "'Boite-Outils-Partage.xlsm'!BAO"

End Sub

Pas de soucis jusque la, mon fichier PARTAGE s'ouvre bien, même sur serveur (ou il sera au final).

La ou je coince, c'est dans la gestion des fichiers.

Dans la macro BAO, je dois activer tour à tour mon fichier PERSO et mon fichier PARTAGE.

Pas de soucis pour PARTAGE qui est en lieu et nom connus.

Par contre, pour ce qui est de PERSO, je coince un peu.

Comment puis je le mettre en variable sachant que je ne connais ni son nom, ni som lieu??
Je sais juste qu'il est le fichier depuis lequel est lancée la macro Lance_Perso.....

Merci d'avance pour vos renseignements

Bertrand
 

Efgé

XLDnaute Barbatruc
Re : Lancement d'une macro depuis un autre fichier : gestion des noms de fichiers

Bonjour Cekankonvaou, _ paws certain d'avoir compris, mais le fichier qui possède la macro qui tourne s'appel ThisWorkbook, quelque soit son nom, son chemin, etc _ Cordialement
 

Pierrot93

XLDnaute Barbatruc
Re : Lancement d'une macro depuis un autre fichier : gestion des noms de fichiers

Bonjour,

Regarde peut être ceci, avec un passage d'argument, à adapter :
Code:
Option Explicit
Sub BAO(c As String)
MsgBox c
End Sub

Option Explicit
Sub Lance_Perso()
Application.Run "'NomClasseur.xls'!test", ThisWorkbook.FullName
End Sub

bon après midi
@+

Edition : bonjour fg:), Michel:)
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Lancement d'une macro depuis un autre fichier : gestion des noms de fichiers

Bonjour Bertrand, Pierrot, FG

En général, ou peux utiliser un code de type:

Code:
NF_TW=ThisWorbook.name

ou

Code:
NF_AW=ActiveWorbook.name

ThisWorkbook pour le fichier où se trouve le code et Activeworkbook pour le fichier affiché à l'écran.
 

Cekankonvaou

XLDnaute Junior
Re : Lancement d'une macro depuis un autre fichier : gestion des noms de fichiers

Bonjour à tous et merci pour vos réponses

Pierrot, peux tu me dire si j'ai bien compris l'exemple que tu me donnes : quand tu éxecutes Sub Lance_perso, celle ci démarre l'autre macro en lui transmettant le nom et chemin du fichier depuis lequel Lance_perso est exécuté, c'est bien cela??

Dans ce cas, comment puis-je dans Sub BAO récupérer ce qui a été transmis??
Les réponses à mes questions sont peut être évidentes, mais je suis un tout petit débutant...

Code:
Option Explicit
Sub BAO(c As String)
MsgBox c
End Sub

Option Explicit
Sub Lance_Perso()
Application.Run "'NomClasseur.xls'!test", ThisWorkbook.FullName
End Sub

Si je reformule les choses autrement :
comment puis je passer une variable d'une macro exécuter dans un fichier A à une macro exécuter dans un fichier B?

Merci
Bertrand
 

Cekankonvaou

XLDnaute Junior
Re : Lancement d'une macro depuis un autre fichier : gestion des noms de fichiers

Bonjour

Désolé, j'avais peut être lu un peu en diagonale et répondu trop vite.

En fait, je n'avais pas saisi que l'argument passé par la première macro se trouvait dans la variable c entre parenthèse dans le nom de la deuxième macro.

Effectivement, ça devrait pouvoir répondre à mon besoin!
Je creuse ça...

En tous cas, merci beaucoup pour l'assistance!

Bertrand
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 655
Messages
2 111 604
Membres
111 217
dernier inscrit
aladinkabeya2