Bonjour à tous,
Je suis débutant en VBA j'ai découvert les macros sous Excel il y a seulement 1 semaine ^^. Donc ne soyer indulgent s'il vous plait.
Alors tout d'abord je vais vous expliquez un peu le contexte. J'ai du exporter des données (ici des listes d'objets contenu dans des bibliothèques d'un AS400 d'IBM que je viens aussi de découvrir), donc j'ai du exporter ces données contenu dans 4 bibliothèques pour 5 environnements différents. Et ensuite j'ai du faire un gros travail de comparaison entre les 5 environnements afin de voir si les données étaient cohérentes. (la finalité de la chose c'est qu'on met en place un environnement de développement pour une application déjà existante qu'on internalise)
Le problème qui survient c'est que j'ai énormément de macros, et j'ai donc mis en place une liste déroulante contenant le nom des macros, avec un bouton faisant appel à une nouvelle macro qui récupère la valeur active de la liste déroulante et lance cette macro. La est le problème, le nom de la macro est bloqué dans la variable et je ne peux pas faire de call. J'ai donc cherché sur le net et je suis tombé sur le CallByName, tout content j'ai essayé cette méthode et bim impossible de trouver quels paramètres lui mettre entrée. J'ai pensé que je devais indiquer le classeur (Workbooks) pour l'objet, car pour moi une macro s'applique bien sur celui-ci mais le CallByName n'est pas géré par celui-ci.
Voilà mon problème, pour information j'ai réussi à le faire de manière qu'on pourrait dire de "bourrin" avec un long if ...elseif mais c'est immonde. Je voudrais donc savoir si CallByName s'applique dans mon cas, si oui comment faire en sorte que cela fonctionne.
Ma macro de lancement lorsque je n'y arrivais pas:
Sub Liste_deroulante()
'
' Liste deroulante Macro
'
Dim Feuil As String
Dim ValListe As String
ValListe = Worksheets(Feuil).Cells(1, 4).Value
Resultat = CallByName(Workbooks(1), ValListe, VbMethod)
End Sub
PS: si je mets du temps à répondre c'est normal, je n'ai accès à mon Excel qu'à mon boulot, et c'est pas super bien vu d'être sur un forum pendant les heures de travail ^^ donc ne vous fâchez pas. Si j'ai oublié quoi que ce soit excusez moi d'avance et dites le moi. MERCI !