Bonjour,
J'ai le code suivant qui fonctionne très bien si je met le chemin complet dans Tbl = EnumFichiers(""). Par contre je voudrais que la macro boucle sur la liste de chemins que j'ai sur la feuille Localisation. Écrit comme tel, il y a le message d'erreur suivant qui m'apparaît : Erreur de compilation, Type d'argument ByRef incompatible. Est-ce que quelqu'un a une idée? Je voudrais aussi que dans la colonne C apparaisse le nom du chemin.
Ou si quelqu'un a une meilleure maîtrise que moi (débutant) de VBA, j'ai le chemin, et le début du nom du fichier. Il me faudrait juste de l'aide pour aller chercher le restant du nom. Le début est toujours pareil : Nxxxxxxx, où xxxxxxx représente le # d'item.
Merci
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 Sub Test() Dim Tbl() As String Dim I As Integer Application.ScreenUpdating = False Set ShD = Sheets("Localisation") Set List = ShD.Range("D2:D" & ShD.Range("B65536").End(xlUp).Row) Tbl = EnumFichiers("List") 'en colonne "A" et "B" de la feuille active si pas vide If Not (Not Tbl) Then For I = 1 To UBound(Tbl) Cells(I, 1) = Tbl(I) Cells(I, 2) = Right(Tbl(I), Len(Tbl(I)) - InStrRev(Tbl(I), "\")) Next I End If End Sub Function EnumFichiers(Chemin As String) As String() Dim TableauFichiers() As String Dim Fichier As String Dim I As Integer 'complète le chemin le cas échéant If Right(Chemin, 1) <> "\" Then Chemin = Chemin & "\" 'récupère les fichiers Fichier = Dir(Chemin) 'boucle sur les fichiers du dossier Do While (Len(Fichier) > 0) I = I + 1 ReDim Preserve TableauFichiers(1 To I) TableauFichiers(I) = Fichier Fichier = Dir() Loop 'retourne le tableau des noms de fichiers EnumFichiers = TableauFichiers() End Function
Partager