Quel bouton utilise une procédure donnée

Résolu/Fermé
ClefDeDouzeEtDemi Messages postés 10 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 21 décembre 2022 - 3 nov. 2020 à 17:32
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 10 nov. 2020 à 21:31
Bonjour à tous, et merci de lire ma question.
Voilà, je dois maintenir un vieux classeur Excel qui présente des dizaines de boutons (je suis sous Excel 2010) et encore plus de procédures et je n'arrive pas à trouver quel(s) bouton(s) utilisent une procédure donnée. Ca doit être tout bête mais là, je craque!!

Merci d'avance,

7 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
3 nov. 2020 à 18:02
Bonjour,

sélectionner Développeur dans le ruban

Sélectionner mode Création

Il suffit de double cliquer sur le bouton pour avoir la macro attachée à ce bouton

Voilà
1
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié le 3 nov. 2020 à 18:43
Bonjour,

Ça dépend du type de bouton, pour accéder à la macro correspondante :
- Si c'est un ActiveX, Onglet Développeur / activer le mode création / clic droit sur le bouton / visualiser le code.
- Si c'est un bouton de formulaire (ou une forme)/ clic droit sur le bouton / affecter une macro / modifier
- Si c'est une barre d'outils qui apparait dans l'onglet complément, il faut écrire une macro pour analyser cette barre d'outils. par exemple :
Sub BarreOutils()
Dim cdb As CommandBar
Dim ctl As CommandBarControl
  For Each cdb In Application.CommandBars
    If Not cdb.BuiltIn Then
      Debug.Print cdb.name
      For Each ctl In cdb.Controls
        If ctl.Type = msoControlButton Then
          Debug.Print "- " & ctl.Caption & vbCrLf & "  " & ctl.OnAction
        End If
      Next ctl
    End If
  Next cdb
End Sub


1
JCB40 Messages postés 2880 Date d'inscription lundi 2 juillet 2018 Statut Membre Dernière intervention 19 mai 2024 461
3 nov. 2020 à 18:00
Bonjour,
Un exemple de votre fichier avec explications serait le bienvenu.
Pour transmettre un fichier,
Veillez à ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Cordialement

0
ClefDeDouzeEtDemi Messages postés 10 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 21 décembre 2022
9 nov. 2020 à 15:03
Bonjour A tous et merci à chacun pour sa réponse.

Malheureusement, je n'ai toujours pas de réponse à ma question.

Mon problème n'est pas de retrouver la macro associée à un bouton mais de déterminer si une macro donnée est associée à un ou plusieurs boutons et si oui, lesquels?
0
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 165
9 nov. 2020 à 15:20
Bonjour,

pour cela, il faut le vérifier dans l'éditeur VBA en fouillant dans toutes les macros ayant été crées.

Sinon, comme dit plus haut, il faudra partager votre fichier car là nous répondons plus ou moins à l'aveuglette !

Au passage, salutations à Patrice et Le pivert
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié le 9 nov. 2020 à 17:01
C'est un ou plusieurs boutons qui lancent une macro et pas l'inverse !
C'est pas en fouillant dans le VBA que tu trouveras mais en explorant les boutons.
En listant, pour chaque bouton, le nom de la macro qui lui est affecté, tu saura automatiquement à quel(s) bouton(s) une macro donnée est affectée ....
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
9 nov. 2020 à 17:05
tout à fait Patrice(salut au passage)

Si ceux sont des boutons de formulaire, tu peux faire cette boucle pour connaitre chaque action de bouton:

Option Explicit
Sub Bouclebouton_Formulaire()
 Dim Obj As Shape
 'Boucle sur les formes de la feuille active
    For Each Obj In ActiveSheet.Shapes
       MsgBox Obj.Name
        MsgBox Obj.OnAction
    Next Obj
End Sub


Voilà

@+ Le Pivert
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ClefDeDouzeEtDemi Messages postés 10 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 21 décembre 2022
10 nov. 2020 à 15:51
Bonjour

Merci!! Oui, Merci à tous j'ai enfin ma réponse. Et entre temps j'ai trouvé ça : https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_other-mso_2007/how-to-find-all-buttons-in-workbook/aac01396-4261-e011-8dfc-68b599b31bf5

Je vais essayé de mixer les deux.... Je suis sûr que quelqu'un sur terre a déjà pondu ça mais bon, je trouve pas.

MERCI!!!
0
ClefDeDouzeEtDemi Messages postés 10 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 21 décembre 2022
10 nov. 2020 à 16:15
Pour ceux qui cherchent encore, comme moi, je pense qu'il est intéressant de regarder https://stackoverflow.com/questions/7445723/excel-forms-identify-unused-code. Ca pourrait aider.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
10 nov. 2020 à 21:31
Re,

Le post est en résolu, as-tu trouvé la solution ?

Si ce n'est pas le cas, il faudrait préciser le contexte et le besoin.
« un vieux classeur Excel qui présente des dizaines de boutons »
C'est très vague.
Où se situent les boutons, de quel type de boutons s'agit-t'il ?
0