Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Rechercher fichier Excel contenant des liaisons

6 réponses
Avatar
Jérémy
Bonjour,

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

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

MsgBox cpt

Merci de votre aide!!

6 réponses

Avatar
isabelle
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!!
Avatar
isabelle
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!!
Avatar
Jérémy
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!!
Avatar
Centaur
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,
Avatar
isabelle
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!!


Avatar
Jérémy
Merci à vous!