bouton d'appel dynamique dans excel

bouton d'appel dynamique dans excel - VB/VBA/VBS - Programmation

Marsh Posté le 12-09-2009 à 12:45:55    

Bonjour
 
Je souhaite créer a partir d’une liste dynamique (dans un tableau excel) une liste de bouton d’appel en  correspondance de ce tableau :
 
1 Le texte du bouton prend la valeur de la 2eme colonne
2 La macro affectée a ce bouton prend « un nom de reference » + « increment » de la valeur colonne 2 du tableau
 Les boutons sont disposées sur la feuille les uns en dessous des autres  
 
 
Exemple
 
N° NOM Valeur   liste d e bouton
1 aaa 8   bouton        texte = aaa nommacro =  reference8
2 bbb 7   bouton        texte = bbb nommacro =  reference7
3 ccc 5   bouton        texte = ccc  nommacro =  reference5
4 ddd 5   bouton        texte = ddd nommacro =  reference5
5 eee 6   bouton        texte = eee nommacro =  reference6
6 eef 7   bouton        texte = eef nommacro =  reference7
 
 
Merci de toutes vos suggestion

Reply

Marsh Posté le 12-09-2009 à 12:45:55   

Reply

Marsh Posté le 14-09-2009 à 11:26:01    

si ta liste s'appelle, "maliste", tu dois créer un code pour l'événement "maliste_change".  
Dans ce code, tu récupère la valeur de la liste (maliste.index). Si ton bouton s'appelle "monbouton", alors tu utiliseras par exemple la propriété ".caption" du bouton pour changer son texte. Idem pour la macro associée

Reply

Marsh Posté le 15-09-2009 à 15:45:28    

Bonjour
 

produvba a écrit :

si ta liste s'appelle, "maliste", tu dois créer un code pour l'événement "maliste_change".  
Dans ce code, tu récupère la valeur de la liste (maliste.index). Si ton bouton s'appelle "monbouton", alors tu utiliseras par exemple la propriété ".caption" du bouton pour changer son texte. Idem pour la macro associée

Je ne suis pas sur que tu ai tout lu si...?
 
 
Pour le souci de ellivrad je penche plutot comme suit :
Une boucle sur tout les objets de la feuilles. Si c'est un bouton, on lui affecte la colonne 2 en Caption, plus ajoute a la propriété OnClick la reference desirée de la macro en fonction de la ligne sur laquelle le bouton est positionné.
 
Regarde du coté de :

Code :
  1. Sub ellivrad()
  2.     Dim Bouton As Object
  3.     'Pour chaque objet dans ta feuille (bouton, checkbox etc.)
  4.     For Each Bouton In ActiveSheet.OLEObjects
  5.            
  6.         'Si c'est un bouton on poursuit
  7.         If TypeOf Bouton.Object Is MSForms.CommandButton Then
  8.             'Recupere le nom de l'objet
  9.             NomDuControle = Bouton.Name
  10.             'Recupere la cellule au dessus du bouton
  11.             CelluleAuDessus = Bouton.TopLeftCell.Address
  12.             'Donc pour récuperer la valeur de la cellule a gauche du bouton :
  13.             CelluleACote = Cells(Range(CelluleAuDessus).Row + 1, Range(CelluleAuDessus).Column - 1).Value
  14.            
  15.             'On recupere la cellule sour forme $A$1 pour l'afficher dans le message
  16.             Set CelluleACoteAdr = Cells(Range(CelluleAuDessus).Row + 1, Range(CelluleAuDessus).Column - 1)
  17.             MsgBox "Le bouton se nomme " & NomDuControle & " il se trouve à coté de la cellule " & CelluleACoteAdr.Address & " contenant : " & CelluleACote
  18.        
  19.         End If
  20.     Next Bouton
  21. End Sub


 
Tu as tout pour t'en sortir normalement.
 
Cordialement


Message édité par SuppotDeSaTante le 15-09-2009 à 15:56:28

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 16-09-2009 à 23:12:04    

merci pour votre contribution
 
en fait j'ai une liste de macro nommer macro(1) à macro(n)
je souhaite que la macro affectée au bouton (caption=col2) soit nommer macro(col3) - les valeurs (col2 et col3) provenant d'une recherchev
 
ceci donnera  
 
1* si col2 et col3 <> vide
2* creer bouton (rectangle ou commandbar)
3* le caption du bouton prend la valeur col 2
4* si clique bouton ; la macro appellée est macro(col3)
 
..... ellivrad : novice au bonnet d'ane
 
 

Reply

Marsh Posté le 17-09-2009 à 08:26:26    

As tu regardé ce que je t'ai mis deja ?


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 17-09-2009 à 13:28:50    

Bonjour,
je me demande si ce n'est pas un truc dans ce genre qu'il veut??:  
 
ActiveSheet.Buttons.Add(2.25, 4.5, 123.75, 43.5).Select
   Selection.OnAction = la macro colonne 3
   Selection.Caption = la valeur colonne 2
 
en ajustant les paramètres de ADD..bien entendu
 
Cordialement

Reply

Marsh Posté le 17-09-2009 à 14:01:40    

Hello seniorpapou ;)
 
C'est fort probable que ca soit cela. Maintenant avec le bout de code que je lui ai donné, il suffit d'appuyer sur F1 pour avoir des exemples concrets sur la gestion des shapes bouton et autres controles dans Excel.
 
Un petit screen de ton fichier serait parlant :d


---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed