Je réalise une macro Excel dont le but est de faire des tests sur des données exportées depuis un autre logiciel.
La macro effectue un ensemble de tests.
A chaque test effectué correspond une ligne de 3 cellules :
Type de test, éléments concernés par le test et résultat de test.
La macro renseigne les 3 cellules d'une ligne (correspondant à un test), et pour la cellule résultat elle écrit Ok ou NOk, et dans le cas NOk, un bouton est créé dynamiquement pour accéder à des explications détaillées sur la cause du NOk.
Quand les tests sont terminés, il peut donc y avoir au total plusieurs lignes sur lesquels un bouton a été créé (ce qui correspond à un cas où un test a été déclaré NOk).
Mon problème est le suivant : l'action à effectuer dépend du bouton qui a été appuyé. Dans mon code de création du bouton, j'affecte une procédure "SeeDetails", mais on ne peut pas passer de paramètre à cette procédure.
Voici le code de création du bouton :
Comment peut-on faire pour récupérer la ligne, ou le nom du bouton, ou tout autre indication qui permettrai de connaitre dans la procédure "SeeDetails" quel bouton a été appuyé ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 'Afficher un bouton permettant d'accéder aux détails du NOk. If (ToDisplay = "NOk") Then plg = "L" & CStr(no_ligne_cur) 'Cellule dans laquelle le bouton est créé. T = .Range(plg).Top L = .Range(plg).Left W = .Range(plg).Width H = .Range(plg).Height Worksheets(FiHM).Buttons.Add(L + W - 50, T, 50, H).Select Selection.OnAction = "SeeDetails" 'Affectation de la procédure. Selection.Name = "BOUTON" Selection.Characters.Text = "Détails..." ActiveSheet.Shapes("BOUTON").Select End If
Merci pour votre aide.
Partager