Appel a fonction VBA via programme exterieur

cs_zoubli Messages postés 8 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 8 octobre 2007 - 3 nov. 2006 à 13:15
cs_zoubli Messages postés 8 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 8 octobre 2007 - 3 nov. 2006 à 17:17
Salut a tous,
Je ne connais rien a VBA ou VBS et on m'a donné un doc XLS qui contient du code VBA.
Chaque clic sur un bouton donné appelle une fonction VBA lisant les paramètres dans la colonne du-dit bouton et génère un rapport .XLS.

Est-il possible d'automatiser ces clic sur les bouton de chaque feuille du classeur excel avec un code VB (ou autre ?), cad de faire appel a chaque fonction associée a un bouton donné ?
Le code de chaque fonction est écrit dans un module séparé m'a-t-on dit.

Voila si c'est trop flou comme présentation n'hésitez pas a me questionner. Merci

2 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 nov. 2006 à 16:20
Salut,

fait Alt + F11 quand tu es sur ce fichier, tu arrives sur la plate-forme VB, et à gauche, tu devrais avoir les objets du projet (les feuilles, le classeur (workbook) et... le ou les modules).

Le module sert effectivement à stocker les fonctions ou procédures liées aux boutons.

Voici la forme que ça doit avoir (approximatif) :

Public Sub NomDeLaSub ()
    ' *** tout le code
End Sub

Si tu as plusieurs "Sub" (procédures), et que toi ton but c'est d'en exécuter 2 ou 3 à la suite, voici comment tu peux faire :
    * tout à la fin, tu crées toi aussi une procédure, par exemple :

Sub MaProc()

End Sub

Et entre les deux lignes, tu places le noms des procédures à appeler, ex :

Sub MaProc()

    Call LeNomDeLaSub
    Call UneAutreSubParSonNom
' etc...

End Sub

Après, tu vires les boutons sur la feuille excel qui ne t'intéresse pas, t'en gardes un et en cliquant droit dessus, tu devrais avoir un truc du style 'affecter une macro', tu dis oui et donnes le nom de la macro (procédure, sub) que tu viens de faire.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_zoubli Messages postés 8 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 8 octobre 2007
3 nov. 2006 à 17:17
En fait je n'ai pas précisé que ces macro excel vont s'exécuter en tâche de fond via l'appel par ce fameux autre programme (VB ?) et non un utilisateur.
Donc OK pour rassembler  l'appel des fonctions par une procédure, mais celle-ci devra être exécutée en liaison avec un autre programme, c'est cela que je n'ai pas bien précisé, possible ?
0
Rejoignez-nous