Je t'ai fait un code qui te met un lien hypertexte sur tous les fichiers d'un dossier et sous-dossiers dans la colonne A, mais tu peux changer de colonne tout est expliqué.
Un UserForm
1 button
1 ChexkBox pour la sélection des sous-dossiers
Tu mets ceci dans un module:
Declare Function GetFileTitleA Lib "Comdlg32" _
(ByVal lpszFile As String, ByVal lpszTitle As String, _
ByVal cbBuf As Long) As Long
Dim I As Integer
Dim cheminfichier As String
Dim nom As String
Sub ListFiles()
'Quel répertoire?
Directory = ChoisirDossier
'Récupérez les fichiers
On Error Resume Next
With Application.FileSearch
.NewSearch
.LookIn = Directory
.Filename = "*.*" 'mettre l'extension si on le désire
If UserForm1.CheckBox1 = True Then
.SearchSubFolders = True 'avec sous-dossier
Else
.SearchSubFolders = False 'sans sous-dossier
End If
.Execute
' Donnez les informations du fichier
For I = 1 To .FoundFiles.Count
cheminfichier = .FoundFiles(I)
nom_fichier
Range("A" & I).Select 'sélectionne la colonne, on peut changer
ActiveCell.FormulaR1C1 = nom & I
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=cheminfichier, SubAddress:= _
cheminfichier & I & "!A1", TextToDisplay:=nom & I
r = r + 1
Next I
End With
End Sub
Sub nom_fichier()
s$ = cheminfichier
If s = "" Then Exit Sub
nom = NomFich(s)
End Sub
Function NomFich(chemin As String) As String
Dim cbBuf As Long
cbBuf = GetFileTitleA(chemin, vbNullString, 0)
NomFich = Space$(cbBuf)
GetFileTitleA chemin, NomFich, cbBuf
End Function
Function ChoisirDossier()
Dim objShell, objFolder, chemin As String, SecuriteSlash
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un répertoire", &H1&)
On Error Resume Next
chemin = objFolder.Items.Item.path
SecuriteSlash = InStr(objFolder.Title, ":")
If SecuriteSlash > 0 Then
chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""
End If
ChoisirDossier = chemin
End Function
et dans le button de ton UserForm pour lancer la macro:
Private Sub CommandButton1_Click()
ListFiles
End Sub
n'oublies pas de mettre ton checkBox pour les sous-dossiers
@+ Le Pivert