Pour faciliter la saisie dans une feuille de calcul, j'ai modifier le menu
"clic droit" dans une feuille afin d'y faire apparaitre une liste de
commandes complémentaires. Ces commandes (apparaissant dans un sous menu)
dépendent de la feuille où l'utilisateur fait son clic droit. Elle sont donc
affichées dynamiquement en fonction de la feuille selectionnées.
Mon problème est le suivant : quand l'utilisateur clic sur un élément de ce
sous menu dynamique, comment récupérer la valeur qu'il a choisi. Comment
passer cette valeur dans "OnAction" ?
Ci-dessous se trouve mon code qui ne fonctionne pas. Le menu est bien
affiché mais un message empêche exécution de la procédure "AffecterTech".
(NB : pour tester mon code, mettez quelques valeurs dans les cellules A7-A16
de la feuille concernée. )
Comment parvenir à passer un argument dans une procédure lancée par
"OnAction" ???
Merci de votre aide.
Julien
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
Dim colTechs As New Collection
Application.CommandBars("Cell").Reset
For i = 7 To 16
If ActiveSheet.Cells(i, 1).Text <> "" Then
colTechs.Add ActiveSheet.Cells(i, 1).Text
End If
Next i
Set NewSubMenu =
Application.CommandBars("Cell").Controls.Add(Type:=msoControlPopup)
NewSubMenu.Caption = "Techniciens"
For Each tech In colTechs
Set NewButton = NewSubMenu.Controls.Add(Type:=msoControlButton)
With NewButton
.Caption = tech
.FaceId = 187
.OnAction = "AffecterTech(" & Chr(34) & tech & Chr(34) & ")"
End With
Next tech
End Sub