bonjour à tous, j'ai trouvé une macro que je souhaiterai utiliser, malheureusement, je fais face à une ereur que je n'arrive pas a resoudre..
la macro est une du forum, elle permet de lister les fichier présents dans un repertoire: voici la macro
l'erreur est une erreur 5 argument ou appel de procédure incorrect, et elle me spécifie la ligne : Set SourceFolder = Fso.GetFolder(Repertoire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
55
56
57
58
59
60
61
62
63
64
65
66
67 Option Explicit Sub TestListeFichiers() Dim Dossier As String 'Définit le répertoire pour débuter la recherche de fichiers. '(Attention à ne pas indiquer un répertoire qu contient trop de sous-dossiers ou de 'fichiers, sinon le temps de traitement va être très long). UserForm1.Show 'Appelle la procédure de recherche des fichiers ListeFichiers Dossier 'Ajuste la largeur des colonnes A:E en fonction du contenu des cellules. Sheets("Fichier à traiter").Columns("A:E").AutoFit MsgBox "Analyse fichier terminé" End Sub Sub ListeFichiers(Repertoire As String) ' 'Nécessite d'activer la référence "Microsoft Scripting RunTime" 'Dans l'éditeur de macros (Alt+F11): 'Menu Outils 'Références 'Cochez la ligne "Microsoft Scripting RunTime". 'Cliquez sur le bouton OK pour valider. Dim Fso As Scripting.FileSystemObject Dim SourceFolder As Scripting.Folder Dim SubFolder As Scripting.Folder Dim FileItem As Scripting.File Dim i As Long Set Fso = CreateObject("Scripting.FileSystemObject") Set SourceFolder = Fso.GetFolder(Repertoire) 'Récupère le numéro de la dernière ligne vide dans la colonne A. i = Range("A65536").End(xlUp).Row + 1 'Boucle sur tous les fichiers du répertoire For Each FileItem In SourceFolder.Files 'Inscrit le nom du fichier dans la cellule Sheets("Fichier à traiter").Cells(i, 1) = FileItem.Name 'Ajoute un lien hypertexte vers le fichier ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _ Address:=FileItem.ParentFolder & "\" & FileItem.Name 'Indique la date de création Sheets("Fichier à traiter").Cells(i, 2) = FileItem.DateCreated 'Indique la date de dernier acces Sheets("Fichier à traiter").Cells(i, 3) = FileItem.DateLastAccessed 'Indique la date de dernière modification Sheets("Fichier à traiter").Cells(i, 4) = FileItem.DateLastModified 'Nom du répertoire Sheets("Fichier à traiter").Cells(i, 5) = FileItem.ParentFolder i = i + 1 Next FileItem '--- Appel récursif pour lister les fichier dans les sous-répertoires ---. For Each SubFolder In SourceFolder.subfolders ListeFichiers SubFolder.Path Next SubFolder End Sub
en effet, en essayant de déchiffrer la macro, il apparait que repertoire est definit comme variable string, mais n'est pas initialisé,
j'ai essayé de remplacer repertoire par mon dossier à scanner, mais la macro plante instantanéement...
merci e votre aide
Partager