62 votes

Comment ajouter un bouton par programme dans VBA à côté de certaines données de cellule de feuille?

J'ai une fonction qui génère des données pour, disons, 100 lignes (et 2 colonnes). Pour chaque ligne (dans la 3ème colonne), je dois ajouter un bouton qui, lorsqu'il est cliqué, fait apparaître une boîte de dialogue modale personnalisée donnant à l'utilisateur 4 options/boutons parmi lesquels choisir.

Une idée de comment faire cela ?

117voto

belisarius Points 45827

Je pense que c'est suffisant pour vous mettre sur un bon chemin :

 Sub a()
  Dim btn As Button
  Application.ScreenUpdating = False
  ActiveSheet.Buttons.Delete
  Dim t As Range
  For i = 2 To 6 Step 2
    Set t = ActiveSheet.Range(Cells(i, 3), Cells(i, 3))
    Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height)
    With btn
      .OnAction = "btnS"
      .Caption = "Btn " & i
      .Name = "Btn" & i
    End With
  Next i
  Application.ScreenUpdating = True
End Sub

Sub btnS()
 MsgBox Application.Caller
End Sub

Il crée les boutons et les lie à butnS(). Dans le sous-btnS(), vous devez afficher votre boîte de dialogue, etc.

Graphiques Mathematica

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X