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), j’ai besoin d’ajouter un bouton qui, lorsqu’on clique dessus, affiche une boîte de dialogue modale personnalisée donnant à l’utilisateur 4 options/boutons parmi lesquels choisir.
Je pense que ceci est suffisant pour vous mettre sur la bonne voie :
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
Cela crée les boutons et les lie à btnS(). Dans la sous-routine btnS(), vous devriez afficher votre boîte de dialogue, etc.