VBA : Appel macro à l'aide d'une variable

Résolu
Buzz -  
 Buzz -
Bonjour,



Je vous explique succinctement la situation. J'ai un classeur excel qui pilote le choix d'ouverture de 3 autres classeurs.


Les noms de ces classeurs sont stockés dans des variables.


Dans le second classeur ouvert est stocké obligatoirement un macro et j'aimerais appeler cette macro dans le classeur pilote.




En résumé,




'Les 3 classeurs
nomfichier1="Relevé de côte d'usure.xlsm"
nomfichier2="Feuille de référence U50.xlsm"
nomfichier3="L1.1.1.csv"




'Vous l'avez compris y a plein d'espace dans les chaines de caractères...



'L'appel de la macro
Application.Run "nomfichier2!Module1.Traitement"



Il faudrait que je puisse changer les " " " de la variable nomfichier2 en " ' ". Mais je ne sais
pas comment faire...
Si vous avez la moindre once de solution je suis preneur parce que ça urge ;)



Merci à tous !


5 réponses

le père
 
Bonjour

Tu n'as pas à changer les " " " de la variable nomfichier2 en " ' " car il n'y a pas de " " " dans la variable nomfichier2. Les délimiteurs utilisés pour encadrer une chaîne ne sont pas dans la chaîne.
Et visiblement, il te manque les bases de la programmation : tu ne fais pas la différence entre une variable et une expression littérale.
Pour résoudre ton problème, je pense que ce tu cherches à faire c'est :
Application.Run nomfichier2 & "!Module1.Traitement"
0
Buzz
 
Bonjour,

Merci pour ta réponse! Je suis effectivement un novice en programmation, ce n'est pas ma tasse de thé !

Mais bon je fouille et j'essaie. Je vais de suite essayer ce que tu m'as proposé.


Buzz
0
Buzz
 
Re,

Bon le problème persiste.

Le nom de mon classeur ayant des espaces lorsque je rentre :

Application.Run nomfichier2 & "!Module1.Traitement"

il lance la macro : 'Feuille de Calcul U50.xlsm!Module1.Traitement'

Et il ne trouve pas cette macro.




Ceci ne proviendrai-t-il pas de l'absence de " ' " pour délimiter le nom du classeur? C'est à dire qu'il faudrait que je puisse lancer :

'Feuille de Calcul U50.xlsm'!Module1.Traitement

Et si oui comment les ajouter afin qu'il ne considère pas la ligne comme une note?


Buzz
0
le père
 
Si tu as besoin de 'Feuille de Calcul U50.xlsm'!Module1.Traitement :
Application.Run "'" & nomfichier2 & "'!Module1.Traitement"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Buzz
 
Merci beaucoup pour ton aide !

Ca marche enfin !


Bonne journée !
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
Un petit complément d'info...
Pour le nom de fichier : "Relevé de côte d'usure.xlsm" ton code rique également de planter car dans ton nom de fichier il y a une apostrophe... A supprimer je pense.
0
Buzz
 
Okay je vais voir si je peux faire ça !

Merci .
0