Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
635 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  bouton d'appel dynamique dans excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

bouton d'appel dynamique dans excel

n°1923580
ellivrad
Posté le 12-09-2009 à 12:45:55  profilanswer
 

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

mood
Publicité
Posté le 12-09-2009 à 12:45:55  profilanswer
 

n°1923856
produvba
Posté le 14-09-2009 à 11:26:01  profilanswer
 

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

n°1924264
SuppotDeSa​Tante
Aka dje69r
Posté le 15-09-2009 à 15:45:28  profilanswer
 

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 !
n°1924670
ellivrad
Posté le 16-09-2009 à 23:12:04  profilanswer
 

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
 
 

n°1924704
SuppotDeSa​Tante
Aka dje69r
Posté le 17-09-2009 à 08:26:26  profilanswer
 

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


---------------
Soyez malin, louez entre voisins !
n°1924797
seniorpapo​u
Posté le 17-09-2009 à 13:28:50  profilanswer
 

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

n°1924804
SuppotDeSa​Tante
Aka dje69r
Posté le 17-09-2009 à 14:01:40  profilanswer
 

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 !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  bouton d'appel dynamique dans excel

 

Sujets relatifs
Résolu : Récupérer le nom d'un tableau dynamique sous Excel2007VBA - excel - Tableau croisé dynamique - grouper...
VBA Excel: Enregistrement d'un fichier csv avec ;[Résolu] Macro excel pour tri tableau par semaine
Programmation sous ExcelMicrosoft.Office.Interop.Excel
VBA copier contenu feuille excel dans autre fichier + sauvegarder sousProbleme insertion données Fichier Excel
générer un fichier excel 
Plus de sujets relatifs à : bouton d'appel dynamique dans excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR