Quel bouton utilise une procédure donnée [Résolu]

Signaler
Messages postés
9
Date d'inscription
lundi 9 juin 2008
Statut
Membre
Dernière intervention
10 novembre 2020
-
Messages postés
8269
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
26 novembre 2020
-
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

Messages postés
7089
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 novembre 2020
579
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à
Messages postés
8269
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
26 novembre 2020
1 530
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


Cordialement
Patrice

Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
Messages postés
2147
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
26 novembre 2020
357
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 : http://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

Messages postés
9
Date d'inscription
lundi 9 juin 2008
Statut
Membre
Dernière intervention
10 novembre 2020

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?
Messages postés
1265
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
25 novembre 2020
127
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
Messages postés
8269
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
26 novembre 2020
1 530
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 ....
Messages postés
7089
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 novembre 2020
579 >
Messages postés
8269
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
26 novembre 2020

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
Messages postés
9
Date d'inscription
lundi 9 juin 2008
Statut
Membre
Dernière intervention
10 novembre 2020

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!!!
Messages postés
9
Date d'inscription
lundi 9 juin 2008
Statut
Membre
Dernière intervention
10 novembre 2020

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.
Messages postés
8269
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
26 novembre 2020
1 530
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 ?