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

Résolu/Fermé
Buzz - Modifié par Buzz le 19/08/2011 à 09:31
 Buzz - 19 août 2011 à 10:25
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

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
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
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
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
Merci beaucoup pour ton aide !

Ca marche enfin !


Bonne journée !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
Modifié par pijaku le 19/08/2011 à 10:24
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
Okay je vais voir si je peux faire ça !

Merci .
0