associé un nom à un commanbbouton

nicroq

XLDnaute Occasionnel
Bonjour a tous,

voici mon probleme :
je souhaiterai savoir si il est possible d’écrire les noms des personnes de la feuille "nom des boutons" dans chacun des boutons de la première feuille?

en vous remerciant
 

Pièces jointes

  • essai 2.xlsx
    23.3 KB · Affichages: 43
  • essai 2.xlsx
    23.3 KB · Affichages: 59
  • essai 2.xlsx
    23.3 KB · Affichages: 59

Papou-net

XLDnaute Barbatruc
Re : associé un nom à un commanbbouton

Bonsoir nicroq,

Tu peux insérer ces lignes de code dans la procédure Workbook_Open pour mettre à jour les boutons à l'ouverture du classeur:

Code:
Private Sub Workbook_Open()
With Feuil1
  .Commandbutton1.Caption = Feuil2.Range("B1")
  .CommandButton2.Caption = Feuil2.Range("B2")
  .CommandButton3.Caption = Feuil2.Range("B3")
  .CommandButton4.Caption = Feuil2.Range("B4")
  .CommandButton5.Caption = Feuil2.Range("B5")
  .CommandButton6.Caption = Feuil2.Range("B6")
End With
End Sub
Cordialement.
 

Papou-net

XLDnaute Barbatruc
Re : associé un nom à un commanbbouton

RE:

Pour copier les noms dans une liste déroulante, il suffit de les extraire depuis la feuille 2 ("nom des boutons"). Reste à savoir où se situerait ta liste: sur ta feuille ou dans un formulaire? Et quel usage veux-tu faire de cette liste: choisir une option de la liste équivaudrait à cliquer sur le bouton correspondant?

A +

Cordialement.
 

nicroq

XLDnaute Occasionnel
Re : associé un nom à un commanbbouton

oui en effet je pense que vous avez bien cerné mon probleme :
j'aimerai dans la feuille 1 que lorsque je clique sur "olivier" par exemple, que le nom olivier s 'ajoute dans une zone déroulante toujours dans la feuille 1. j'aime ai vraiment avoir une zone déroulante interactive en fonction de quel bouton je clique.
 

nicroq

XLDnaute Occasionnel
Re : associé un nom à un commanbbouton

je vous joint un fichier plus concret: par exemple en cliquant sur "salade" j'aimerai que salade apparaisse dans la zone de liste deroulante. Le tout est d arriver a faire une liste deroulante temporaire correspondant a chaque clic.

en vous remerciant pour votre temps passé sur mon probleme!!!
 

job75

XLDnaute Barbatruc
Re : associé un nom à un commanbbouton

Bonsoir nicroq, Papou-net,

Je reste sur le fichier du poste #1, voyez le fichier joint et les codes.

La 2ème feuille est réservée aux listes, ne pas y faire autre chose.

A+
 

Pièces jointes

  • CommandButtons(1).xlsm
    34 KB · Affichages: 48

job75

XLDnaute Barbatruc
Re : associé un nom à un commanbbouton

Re,

Pour remettre à zéro (RAZ) la liste des boutons cliqués, utiliser un bouton de Formulaire, fichier (2).

Bonne nuit.
 

Pièces jointes

  • CommandButtons(2).xlsm
    35.5 KB · Affichages: 44

job75

XLDnaute Barbatruc
Re : associé un nom à un commanbbouton

Bonsoir nicroq, le forum,

Dans ce fichier (3) la liste est classée dans l'ordre de survenance des clics.

Edit : si l'on veut que le dernier bouton cliqué soit en haut de la liste remplacer xlAscending par xlDescending.

Bonne journée.
 

Pièces jointes

  • CommandButtons(3).xlsm
    36.7 KB · Affichages: 39
Dernière édition:

job75

XLDnaute Barbatruc
Re : associé un nom à un commanbbouton

Re,

S'il y a beaucoup de boutons il faut utiliser un Module de classe avec ce code :

Code:
Public WithEvents CB As MSForms.CommandButton

Private Sub CB_Click()
Dim i&
With Feuil2 'CodeName
  i = Val(Replace(CB.Name, "CommandButton", ""))
  .Cells(i, 3) = Application.Max(.[C:C]) + 1 'n° d'ordre du clic
  .Columns("B:C").Copy .[D1]
  On Error Resume Next
  Intersect(.[D:E], .[E:E].SpecialCells(xlCellTypeBlanks).EntireRow).Delete xlUp
  With .[D:D].SpecialCells(xlCellTypeConstants)
    .Resize(, 2).Sort .Columns(2), xlAscending, Header:=xlNo 'tri sur le n° d'ordre
    .Name = "Liste"
  End With
End With
End Sub
J'ai aussi remplacé la macro RAZ par celle-ci, dans ThisWorkbook :

Code:
Sub Initialiser()
'Feuil1 et Feuil2 sont les CodeNames des feuilles
Dim o As Object, i&, n&
For Each o In Feuil1.OLEObjects
  If o.Name Like "CommandButton#*" Then
    i = Val(Replace(o.Name, "CommandButton", ""))
    o.Object.Caption = Feuil2.Cells(i, 2)
    ReDim Preserve CB(n)
    Set CB(n).CB = o.Object 'initialisation de la classe
    n = n + 1
  End If
Next
Feuil2.[C:E].Delete 'RAZ
End Sub
Tout est réinitialisé, y compris les Captions des CommandButtons.

Fichier (4).

A+
 

Pièces jointes

  • CommandButtons(4).xlsm
    39.9 KB · Affichages: 37

job75

XLDnaute Barbatruc
Re : associé un nom à un commanbbouton

Re,

Pour finir, votre nouveau fichier adapté avec ce qui précède.

La liste est restituée directement dans la 1ère feuille.

Edit : j'ai mis des titres en feuille "Listes", c'est quand même plus clair.

A+
 

Pièces jointes

  • Fichier et CommandButtons(1).xlsm
    92 KB · Affichages: 53
Dernière édition:

nicroq

XLDnaute Occasionnel
Re : associé un nom à un commanbbouton

MERCI MERCI beaucoup pour votre aide!!!! c est genial merci pour avoir passer du temps sur mon probleme!!

une derniere question : serait il possible de faire un bouton pour annuler la derniere ligne de la zone déroulante?

bonne soirée et bon dimanche
 

nicroq

XLDnaute Occasionnel
Re : associé un nom à un commanbbouton

Par contre en regardant mieux le fichier, je souhaiterai vraiment que lorsque l on clique chaque ligne apparaissent dans la zone deroulante (fichier essai N°1 envoyé hier a 21h41) afin de contenir dans une certaine zone!
cela serait il possible?

merci encore
bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 685
Messages
2 090 927
Membres
104 702
dernier inscrit
Hugotheking