Appeler depuis un xls une macro d'un xla
Quand la macro complémentaire est installée, il suffit d'entrer le nom de la procédure à exécuter dans la boite de dialogue "Affecter une macro" pour que le bouton lance la procédure. Cependant cette affectation est volatile. A la prochaine ouverture du classeur, un clic sur le bouton va rechercher la procédure dans le classeur actif ou la première (par ordre alphabétique) macro complémentaire installée. Il y a plusieurs moyens de contraindre le bouton à toujours déclencher la procédure souhaitée mais il faut passer par un peu de VBA.
Le plus simple, est de réaffecter la procédure au bouton dans l'événement Open du classeur Perso.xls. Ceci garantit que le bouton pourra dès l'ouverture d'Excel lancer la bonne procédure même s'il est cliqué en dehors du contexte souhaité (un classeur particulier). Et c'est ce qui demande le moins de travail... Dans l'événement Workbook_Open du Perso.xls, une ligne de code comme celle-ci suffit :
Application.CommandBars("LaBarre").Controls("NomBouton").OnAction = "y"
"LaBarre" est le nom de la barre d'outils (intégrée ou personnalisée) où le bouton a été monté "NomBouton" est le nom du bouton (Personnaliser, clic droit sur le bouton et taper le nom souhaité dans la zone "Nom :")
Auteur : Frédéric Sigonneau
Mots clefs associés à cette page : complémentaire, xla, macro
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
