Bonsoir,

J'ai lu cette discussion.

Tout d'abord un grand merci à Philippe Tulliez pour ce superbe travail,
C'est pilpoil ce que je cherchais.

je l'adapte à mes besoins précis.

Par exemple, J'ai fais ciblé sur les fichiers *.xlsm avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
If Right(FileName, 5) = ".xlsm"
dans

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Function FileListInFolder(StrPath As String) As Variant
 Dim FileName As String, Elem As Long, FileList() As String
 If Right(StrPath, 1) <> "\" Then StrPath = StrPath & "\"
 FileName = Dir(StrPath)
 Do While FileName <> ""
  If Right(FileName, 5) = ".xlsm" Then
   ReDim Preserve FileList(Elem): FileList(Elem) = FileName: Elem = Elem + 1
  End If
  FileName = Dir
 Loop
 FileListInFolder = FileList
End Function
--> Facile, je reconnais


En deuxième étape (j'ai plein d'idées) je voudrais intégrer le nom du fichier dans l'import (en colonne A) avec une variable "DebutNomFichier" dans un module
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Option Explicit
Public DebutNomFichier

Pour Mvt-Fev.xlsm ->
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DebutNomFichier= Mvt-Fev
du coup, je tente cela

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function FileListInFolder(StrPath As String, DebutNomFichier As String) As Variant
 Dim FileName As String, Elem As Long, FileList() As String
 
 If Right(StrPath, 1) <> "\" Then StrPath = StrPath & "\"
 FileName = Dir(StrPath)
DebutNomFichier = Right(FileName, 5) = ".xlsm"
 Do While FileName <> ""
  If Right(FileName, 5) = ".xlsm" Then
   ReDim Preserve FileList(Elem): FileList(Elem) = FileName: Elem = Elem + 1
  End If
  FileName = Dir
 Loop
 FileListInFolder = FileList
End Function

mais j'ai une erreur de compilation sur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FileList = FileListInFolder(Folder)
dans Le volet espion me renvoie "impossible de compiler le module" sur FileListInFolder

Chose que je comprends pas car je défini juste une valeur....
J'ai du louper un truc.....


Je pense qu'il faut aussi rajouter dans le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Function ExportTable
--------------------------------------------------
.Copy TargetSheet.Range("a" & TargetRow & DebutNomFichier) ' Copie de plage
Cela te semble correct ?

Ps : L'étape 2 sera l'import des fichiers dans des sous-répertoires et non plus un un seul répertoire .... je bosse déjà là-dessus !!!!


Bonne soirée à Tous et au Forum