Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macros disponibles

  • Initiateur de la discussion Initiateur de la discussion DoubleZero
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

DoubleZero

XLDnaute Barbatruc
Bonjour à toutes et à tous,

La macro ci-après, de BOISGONTIER que je remercie, génère des hyper-liens vers les procédures du classeur.

Code:
Sub ListeProc()
i = 1
 For Each c In ActiveWorkbook.VBProject.VBComponents
  If c.Type = 1 Then
    For ligne = 1 To c.CodeModule.CountOfLines
       temp = Trim(c.CodeModule.Lines(ligne, 1))
       If Left(temp, 3) = "Sub" Then
         ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), Address:="", SubAddress:=ActiveSheet.Name & "!A1", TextToDisplay:=Mid(Left(temp, Len(temp) - 2), 4)
         i = i + 1
       End If
    Next ligne
  End If
 Next c
End Sub
Sub proc1()
  MsgBox "proc1"
End Sub
Sub proc2()
  MsgBox "proc2"
End Sub

Y aurait-il, s’il vous plaît, un moyen de récapituler les macros disponibles dans les répertoires, sous-répertoires et classeurs 😕 ?

Je vous remercie 🙂 pour votre aide.
 

Pièces jointes

Re : Macros disponibles

Re-bonjour,

Je te remercie, Hippolite, pour les liens que tu as pris la peine de m’indiquer.

Grâce à notre site et celui de BOISGONTIER, j’avais déjà trouvé mon bonheur afin de :

- lister les procédures d’un classeur ;
- dresser l’arborescence de répertoires.

Or, mon besoin actuel consiste à récapituler et localiser l’ensemble des macros présentes, par exemple, dans quelque 2500 fichiers, eux-mêmes répartis dans 250 dossiers 🙄.

Encore merci.
 
Re : Macros disponibles

Bonjour 00, Hippolite

Bon, comme ce sujet m'intéresse, voici un test à faire à partir de mon utilitaire pour insérer les images (que tu dois connaître 😱).
Le but est déjà d'avoir la liste des macros et fonction de chaque classeur de la liste dont le VBA n'a pas été verrouillé par un Mot de passe.

Voici la marche à suivre à partir du fichier qui est ici:

https://www.excel-downloads.com/thr...-suppression-photos-mouton-a-5-pattes.154875/

1) Fait une recherche de tous les fichiers .xls (au lieu des jpg).
2) Filtre que les fichiers qui se termine par .xls
3) Lance cette macro ArecupMAcroTitresClasseur en te positionnant sur le premier nom de fichier en colonne 3 (j'ai mis une boucle de 1000 pour le test, mais tu peux en mettre que 10):

Code:
Public Ajout
Sub ArecupMAcroTitresClasseur()
For i = 1 To 1000
Ajout = ActiveCell.Row
NF = ActiveCell.Offset(0, -1) & "\" & ActiveCell
'MsgBox NF
'Application.EnableEvents = False
ActiveWorkbook.FollowHyperlink Address:=NF ', _
    NewWindow:=True
  listeMacrosTitre_colonneCeClasseur
  ActiveWorkbook.Close False
  'Application.EnableEvents = True
'  Stop
  ActiveCell.Offset(1, 0).Select
  Ajout = ActiveCell.Row
Next
End Sub
Sub listeMacrosTitre_colonneCeClasseur()
'Addref
Dim i As Integer ', Ajout As Integer
Dim nomaraj As String
Dim Msg As String
Dim VBCmp As VBComponent
Dim X As Integer
colonne = 10
'Sheets.Add
'Ajout = Workbooks(ThisWorkbook.Name).ActiveCell.Row

'GoTo suite
'For Each VBCmp In ThisWorkbook.VBProject.VBComponents
On Error Resume Next
For Each VBCmp In ActiveWorkbook.VBProject.VBComponents
Msg = VBCmp.Name

'With Cells(Ajout, 1)
'.Interior.ColorIndex = 6
'.Value = Msg
'End With
'Stop
'suite:
X = ActiveWorkbook.VBProject.VBComponents(Msg).CodeModule.CountOfLines
'Stop
For i = 1 To X
nomaraj = ActiveWorkbook.VBProject.VBComponents(Msg).CodeModule.Lines(i, 1)
'MsgBox nomaraj
ncar = Len(nomaraj)
If ncar = 1 Then nomaraj = " '"
If Mid(nomaraj, 1, 3) = "Sub" Then nomaraj = " " & nomaraj: ThisWorkbook.Sheets("Liste fichiers").Cells(Ajout, colonne).Value = nomaraj: colonne = colonne + 1 ': Stop
If Mid(nomaraj, 1, 3) = "Pub" Then nomaraj = " " & nomaraj: ThisWorkbook.Sheets("Liste fichiers").Cells(Ajout, colonne).Value = nomaraj: colonne = colonne + 1
If Mid(nomaraj, 1, 3) = "Pri" Then nomaraj = " " & nomaraj: ThisWorkbook.Sheets("Liste fichiers").Cells(Ajout, colonne).Value = nomaraj: colonne = colonne + 1
If Mid(nomaraj, 1, 3) = "fun" Then nomaraj = " " & nomaraj: ThisWorkbook.Sheets("Liste fichiers").Cells(Ajout, colonne).Value = nomaraj: colonne = colonne + 1
'Cells(Ajout + I, 1) = ActiveWorkbook.VBProject.VBComponents(Msg).CodeModule.Lines(I, 1)
Next
'Ajout = Ajout + X + 2
Next VBCmp
End Sub
Sub Addref()
'http://frederic.sigonneau.free.fr/code/VBE/AjouterSupprimerReference.txt
'ajoute une référence à la bibliothèque
  On Error Resume Next
  'nom et chemin de la bibliothèque
  'nomRef = "C:\Program Files\Fichiers communs\Microsoft Shared\DAO\Dao360.dll"
  'Microsoft visual basic for Application Extensibility 5.3
  nomRef = "C:\Program Files\Fichiers communs\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
  ThisWorkbook.VBProject.References.AddFromFile nomRef
  End Sub
 
Re : Macros disponibles

Bonjour Hippolite, Michel, le Forum,

Merci, Michel 😀, de venir également à mon secours !

Avec le dernier lien qu’Hippolite m’a gentiment fourni, je dois avouer tourner en bourrique 😡.

Euh, non : bourrique, je le suis déjà, par conséquent, je dirais plutôt que je deviens chèvre 🙄

En bref, je n’arrive à rien !

J’ai bien lancé ta macro et, malheureusement, un blocage apparaît ici :


C’est grave, Docteur ?

Merci beaucoup 🙂.
 
Re : Macros disponibles

Re

Essaye de retirer le commentaire de Addref, sinon, il faut avoir Microsoft visual basic for Application Extensibility 5.3 de cocher dans les références du VBE.
 
Re : Macros disponibles

Re-bonjour 🙂,

Michel, je cherche à obtenir ce que tu recommandes là :

il faut avoir Microsoft visual basic for Application Extensibility 5.3 de cocher dans les références du VBE.

J'ai trouvé ici une solution fournie par Hasco mais l'option "Références", dans "Outils", m'est inaccessible (gris clair).

Lorsque tu mentionnes :

Essaye de retirer le commentaire de Addref

je ne comprends pas quelle(s) ligne(s) je dois supprimer 😕.

Je te remercie 😱.
 
Re : Macros disponibles

Re 00


Essaye peut-être ceci (sans conviction 😱).

Code:
Sub listeMacrosTitre_colonneCeClasseur()
Addref

Mais je crois que tu es sous seven (il y a peut-être une incompatibilité 😕).

Sinon il faut faire confiance au projet VBA dans les paramètre de confidentialités (voir Images).

Microsoft visual basic for Application Extensibility 5.
 

Pièces jointes

  • Parametres_Macro_XL2007.jpg
    38.2 KB · Affichages: 74
Re : Macros disponibles

Bonjour 00

Bon, c'est pas pratique de ne pas avoir accès aux références VBE sous Win7 😕.

Sinon, teste ce fichier en mettant 3 fichiers que tu créeras avec des macros. Tu seras peut être obligé d'activer la référence (bouton Add ref).

Bon test 🙂.
 

Pièces jointes

Re : Macros disponibles

Bonjour à toutes et à tous,

@ Michel 🙂,

Voici comment j’ai procédé.

Copie sous C:\Temp de :

- ton dernier fichier ;
- trois fichiers nouvellement créés, avec des macros.

A présent, le nouveau message d’erreur est le suivant :



Bien évidemment… je ne sais pas aller au-delà 😱.

Merci pour l’aide et bonne journée 🙂.
 

Pièces jointes

  • pb 001.jpg
    47.6 KB · Affichages: 165
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
645
Réponses
5
Affichages
469
Réponses
5
Affichages
698
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
3
Affichages
833
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…