VBA : Appel macro à l'aide d'une variable
Résolu
Buzz
-
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 !
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 !
A voir également:
- VBA : Appel macro à l'aide d'une variable
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
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"
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"
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
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
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
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
Si tu as besoin de 'Feuille de Calcul U50.xlsm'!Module1.Traitement :
Application.Run "'" & nomfichier2 & "'!Module1.Traitement"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question