Rechercher fichier Excel contenant des liaisons

Le
Jérémy
Bonjour,

Je souhaiterai savoir s'il est possible de dénombre dans un répertoire
donné, le nombre de fichiers Excel contenant des liaisons avec
d'autres fichiers Excel.
J'ai commencé en utilisant la fonction Filesearch, mais je bloque sur
les liaisons. Si possible, je souhaiterai faire la même opération avec
les fichiers Excel contenant des macros.
Voici mon programme :

With Application.FileSearch
.NewSearch
.SearchSubFolders = True
.FileType = msoFileTypeExcelWorkbooks
.LookIn = "C:"
.Execute
On Error Resume Next
For Each F In .FoundFiles
cpt = cpt + 1
Next F
End With

MsgBox cpt

Merci de votre aide!!
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #22570911
bonjour Jérémy,

pour cette exemple les résultats sont mit sur la feuille active en colonne A et B

Sub test()
Dim arLinks As Variant
Dim i As Integer, x As Integer, y As Integer
Dim ww As Object
Set fs = Application.FileSearch
Set ww = ThisWorkbook.Sheets("Feuil1") ' à adapter
With fs
.LookIn = "C:zz" ' à adapter
.Filename = "*.xls"
.Execute
If .FoundFiles.Count = 0 Then
MsgBox "Aucun fichier n'a été trouvé."
Exit Sub
End If

For i = 1 To .FoundFiles.Count
' MsgBox .FoundFiles(i)
Workbooks.Open Filename:=.FoundFiles(i)
arLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(arLinks) Then
For y = LBound(arLinks) To UBound(arLinks)
x = x + 1
ww.Range("A" & x) = .FoundFiles(i)
ww.Range("B" & x) = arLinks(y)
Next
End If
ActiveWorkbook.Close SaveChanges:úlse
Next i
End With
End Sub

isabelle

Le 2010-09-14 05:21, Jérémy a écrit :
Bonjour,

Je souhaiterai savoir s'il est possible de dénombre dans un répertoire
donné, le nombre de fichiers Excel contenant des liaisons avec
d'autres fichiers Excel.
J'ai commencé en utilisant la fonction Filesearch, mais je bloque sur
les liaisons. Si possible, je souhaiterai faire la même opération avec
les fichiers Excel contenant des macros.
Voici mon programme :

With Application.FileSearch
.NewSearch
.SearchSubFolders = True
.FileType = msoFileTypeExcelWorkbooks
.LookIn = "C:"
.Execute
On Error Resume Next
For Each F In .FoundFiles
cpt = cpt + 1
Next F
End With

MsgBox cpt

Merci de votre aide!!
isabelle
Le #22570951
ps/

XlLink peut être l'une de ces constantes:

xlExcelLinks
xlOLELinks (gère également des liaisons DDE)
xlPublishers
xlSubscribers

isabelle



Le 2010-09-14 18:47, isabelle a écrit :
bonjour Jérémy,

pour cette exemple les résultats sont mit sur la feuille active en
colonne A et B

Sub test()
Dim arLinks As Variant
Dim i As Integer, x As Integer, y As Integer
Dim ww As Object
Set fs = Application.FileSearch
Set ww = ThisWorkbook.Sheets("Feuil1") ' à adapter
With fs
.LookIn = "C:zz" ' à adapter
.Filename = "*.xls"
.Execute
If .FoundFiles.Count = 0 Then
MsgBox "Aucun fichier n'a été trouvé."
Exit Sub
End If

For i = 1 To .FoundFiles.Count
' MsgBox .FoundFiles(i)
Workbooks.Open Filename:=.FoundFiles(i)
arLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(arLinks) Then
For y = LBound(arLinks) To UBound(arLinks)
x = x + 1
ww.Range("A" & x) = .FoundFiles(i)
ww.Range("B" & x) = arLinks(y)
Next
End If
ActiveWorkbook.Close SaveChanges:úlse
Next i
End With
End Sub

isabelle

Le 2010-09-14 05:21, Jérémy a écrit :
Bonjour,

Je souhaiterai savoir s'il est possible de dénombre dans un répertoire
donné, le nombre de fichiers Excel contenant des liaisons avec
d'autres fichiers Excel.
J'ai commencé en utilisant la fonction Filesearch, mais je bloque sur
les liaisons. Si possible, je souhaiterai faire la même opération avec
les fichiers Excel contenant des macros.
Voici mon programme :

With Application.FileSearch
.NewSearch
.SearchSubFolders = True
.FileType = msoFileTypeExcelWorkbooks
.LookIn = "C:"
.Execute
On Error Resume Next
For Each F In .FoundFiles
cpt = cpt + 1
Next F
End With

MsgBox cpt

Merci de votre aide!!
Jérémy
Le #22572371
Merci! cela fonctionne bien.
Mais cela est très long comme traitement car cela demande d'ouvrir
tous les fichiers Excels!
Or mes répertoires contiennent environ 15 000 fichiers Excels.......

Serait-ce possible d'effectuer le test mais sans l'ouverture des
fichiers?

Merci!!
Centaur
Le #22573141
Jérémy wrote:
Merci! cela fonctionne bien.
Mais cela est très long comme traitement car cela demande d'ouvrir
tous les fichiers Excels!
Or mes répertoires contiennent environ 15 000 fichiers Excels.......

Serait-ce possible d'effectuer le test mais sans l'ouverture des
fichiers?

Merci!!





Bonsoir,

Pour avoir eu le cas (recensement de fichiers contenant des macros) je
n'ai pas trouvé plus simple, ni plus rapide que d'ouvrir les fichiers en
lecture seule...

Bon courage !

Cordialement,
isabelle
Le #22573331
bonjour Jérémy,

pour diminuer le temps d'execution, tu pourrais ajouter en début de macro,

Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.Calculation = xlManual

et en fin de macro

Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic


isabelle

Le 2010-09-15 08:37, Jérémy a écrit :
Merci! cela fonctionne bien.
Mais cela est très long comme traitement car cela demande d'ouvrir
tous les fichiers Excels!
Or mes répertoires contiennent environ 15 000 fichiers Excels.......

Serait-ce possible d'effectuer le test mais sans l'ouverture des
fichiers?

Merci!!


Jérémy
Publicité
Poster une réponse
Anonyme