Se connecter avec
S'enregistrer | Connectez-vous

VBA - Appel de procédure

Dernière réponse : dans Programmation

Bonjour,

J'ai un problème d'appel de macro depuis un autre classeur.

J'ai un classeur 1 qui contient des cases à cocher et des boutons associés à des macros. Ces macros ne sont pas dans des modules mais dans des feuilles. Exemple : dans la feuille 1 :

  1. Private Sub macro1()
  2. ...
  3. End Sub


J'ai un classeur 2 qui doit modifier les états des cases à cocher et activer certains boutons.
Depuis ce classeur 2, j'ouvre le classeur 1 et j'active la feuille qui m'intéresse. Ensuite j'arrive à modifier l'état d'une case à cocher en faisant :

  1. Activesheet.case_a_cocher1.Value = True/False


En revanche, je n'arrive pas à activer les boutons. C'est-à-dire lancer les macros associées à ces boutons.

Quelqu'un a-t-il la solution ? Merci !!!

Autres pages sur : vba appel procedure

Lassé par la pub ? Créez un compte

Meilleure solution

Expert Programmation

Salut,

Je ne vois pas l'intérêt d'activer tes feuilles.
Utilise leur nom ou leur numéro !
  1. Worksheets("ma feuille").case_a_cocher1.Value = True/False


Tu as des fonctions dans ces feuilles ? Appelle-les de la même manière :
  1. Worksheets("ma feuille").CommandButton1_Click


Evidemment, il faut que ces fonctions soient publiques. Si tu trouves le mot Private devant leur définition, c'est que l'accès à la fonction en dehors de la feuille est explicitement interdit.

Merci de ta réponse.

J'ai remplacé tous les mots-clés "Private" par "Public".

En revanche, lorsque je tape (adapté à mon cas ^^) :

  1. Worksheets("ma feuille" ).CommandButton1_Click


J'ai le message d'erreur suivant : "Impossible d'afficher une feuille non modale lorsqu'une feuille modale est affichée"

Qu'est-ce que cela signifie ? Merci !
Lassé par la pub ? Créez un compte