1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| Option Explicit
'Rep : le répertoire à traiter contenant le chemin complet
'Cel : la 1èr cellule où écrire
Public Lig As Long, Col As Long, DerLig As Long, i As Long, F As Object, P As Worksheet
Public LigEcrire As Long, NbFichier As Long
Sub Lit_dossier(ByRef dossier)
Dim TB, d As Object
With P
For Each F In dossier.Files
If Left(F.Name, 2) = "cd" Then
'vérification si existe déjà
For i = Lig To DerLig
If .Cells(i, Col) = F.Name Then Exit For
Next i
If i > DerLig Then 'existe pas et l'ajoute
TB = Split(F.Name, ".")
.Cells(LigEcrire, Col).Select
.Hyperlinks.Add Anchor:=Selection, Address:= _
dossier.Path & F.Name, TextToDisplay:=TB(0)
LigEcrire = LigEcrire + 1
End If
End If
Next
End With
For Each d In dossier.SubFolders
Lit_dossier d
Next
End Sub
Sub MAJRepertoire(Rep As String, Cel As Range)
Dim Obj As Object, RepP As Object
Application.ScreenUpdating = False
Set P = Cel.Parent 'Certifier la feuille où écrire
P.Activate
Lig = Cel.Row: Col = Cel.Column
With P
DerLig = .Cells(.Rows.Count, Col).End(xlUp).Row
If DerLig <= Lig Then
'Au cas ou la 1ère ligne ne serait pas à 1 et que le fichier est vide
DerLig = Lig - 1: LigEcrire = Lig
Else
'Le fichier n'est pas vide, initialise la 1ère ligne où ajouter
LigEcrire = DerLig + 1
End If
If Right(Rep, 1) <> "\" Then Rep = Rep & "\"
Set Obj = CreateObject("Scripting.FileSystemObject")
Set RepP = Obj.getfolder(Rep)
Lit_dossier RepP
'Set Fich = RepP.Files
End With
End Sub |
Partager