Pb de bouton dans menu

  • Initiateur de la discussion Bronson
  • Date de début
B

Bronson

Guest
Bonjour,

Je ne suis ni débutant ni vraiment expert en VBA, mais j'ai un (gros pb) problème à résoudre.

J'ai dans le menu "Affichage" un bouton popup, appelé "Devis en cours" qui s'installe à l'ouverture du classeur. Ce popup donne la liste des devis en cours (sous forme de CbBoutons, un bouton par devis). Jusque là pas de pb.
Cette liste est dynamique cad qu'elle ne crée les boutons que pour les devis réellement en cours --> je ne peux pas (ou ne sais pas) utiliser "OnAction" pour ouvrir le devis souhaité.
Les boutons sont créés avec une boucle qui teste si un devis est en cours, si Oui --> création du bouton.

Comment faire pour contourner ou utiliser astucieusement "OnAction" ?

D'avance merci
 
J

jaccard

Guest
Hello, j'ai deux solutions à te proposer :

1) avec .OnAction il faut une macro dans chaque devis du genre :

Sub OuvreDevis()
ThisWorkbook.Activate
End Sub

et à l'installation du menu
.OnAction = "c:\MonDevis.xls!OuvreDevis"

mais cela oblige à créer dans chaque devis cette macro


2) puisque que tu construit le menu, tu connais le chemin de chaque devis
pourquoi ne pas le mettre dans .Tag pour l'utiliser après

en imaginant que ton programme d'installation du menu se nomme
menu.xls
et que ton menu se nomme "MonMenu"

tu mets dans .OnAction = "c:\menu.xls!OuvreDevis"
tu ajoutes dans menu.xls :

Sub OuvreDevis()
Workbooks.Open (Application.CommandBars("MonMenu") _
.Controls(Application.Caller(1)).Tag)
End Sub


l'avantage est de n'être pas obligé de reprendre tous les devis comme la premiere solution

dom ;-)







Application.CommandBars("MonMenu").Controls(Application.Caller(1)).Tag
 

Discussions similaires

Statistiques des forums

Discussions
314 653
Messages
2 111 591
Membres
111 208
dernier inscrit
estalavista