Private Sub CommandButton1_Click()
Dim Fso As Object, Sourcefile As Object
Dim Rep As String, Fic As String
Dim Target As Range
Dim Tbl
Rep = "Dossier des fichiers Csv"
Fic = Dir(Rep)
Set Fso = CreateObject("Scripting.FileSystemObject")
Do While Fic <> ""
ActiveSheet.Columns("A:E").Clear
Set Target = ActiveSheet.[A1]
Set Sourcefile = Fso.OpenTextFile(Rep & Fic, 1)
Do While Not Sourcefile.AtEndOfStream
Tbl = Split(Replace(Sourcefile.readline, """", ""), ";")
Target.Resize(, UBound(Tbl) + 1) = Tbl
Set Target =...
Merci, je n'avais pas vu ta réponse plutot, mais c'est parfait, je te remercie, et les autres aussi,Bonsoir à tous,
En reprenant le principe de @job75 , vous pouvez utiliser ce code adapté à votre demande:
VB:Private Sub CommandButton1_Click() Dim Fso As Object, Sourcefile As Object Dim Rep As String, Fic As String Dim Target As Range Dim Tbl Rep = "Dossier des fichiers Csv" Fic = Dir(Rep) Set Fso = CreateObject("Scripting.FileSystemObject") Do While Fic <> "" ActiveSheet.Columns("A:E").Clear Set Target = ActiveSheet.[A1] Set Sourcefile = Fso.OpenTextFile(Rep & Fic, 1) Do While Not Sourcefile.AtEndOfStream Tbl = Split(Replace(Sourcefile.readline, """", ""), ";") Target.Resize(, UBound(Tbl) + 1) = Tbl Set Target = Target.Offset(1) Loop Sourcefile.Close Set Sourcefile = Nothing ActiveSheet.Columns.AutoFit MsgBox Fic & vbLf & " A traiter" Stop ' ci_dessous tout le traitement à faire ...... Fic = Dir Loop Set Fso = Nothing End Sub
Fic = Dir(Rep & "\*.csv") devrait pouvoir le faire ....Merci, je n'avais pas vu ta réponse plutot, mais c'est parfait, je te remercie, et les autres aussi,
Petite question y a t'il un moyen qu'il n'essaie d'ouvrir que les fichier csv, car j'avais un fichier excel dans le repertoire, je te raconte pas ce qu'il m'a injecté ^^
Merci
Tbl = Split(Replace(Sourcefile.readline, """", ""), ";")
Target.Resize(, UBound(Tbl) + 1) = Tbl
Set Target = Target.Offset(1)
If UBound(Tbl) > -1 Then
Do While Not Sourcefile.AtEndOfStream
Tbl = Split(Replace(Sourcefile.readline, """", ""), ";")
If UBound(Tbl) > -1 Then
Target.Resize(, UBound(Tbl) + 1) = Tbl
Set Target = Target.Offset(1)
Else
MsgBox "Importation incorrecte du fichier " & Fic, vbCritical + vbOKOnly
Stop
End If
Loop