candabalan
XLDnaute Nouveau
Bonjour, je suis actuellement sur un projet de stage en entreprise, et je code sur vba excel, je suis débutant et j'ai besoin de votre aide. J'ai cherché partout, mais aucune solution pour importer plusieurs fichiers CSV en même temps.
Je voudrais qu'il y ai une sorte de loop qui prend tous les fichiers d'un dossier.
J'ai trouvé un code qui fait pour un fichier, comment fait-on pour le changer à plusieurs fichiers:
Sub Tst()
Dim Fichier As Variant
ChDir ThisWorkbook.Path
Fichier = Application.GetOpenFilename("C:\Documents and Settings\a071843\Desktop\General\compatibilité, *.csv")
If Fichier <> False Then
Lire Fichier
End If
End Sub
Sub Lire(ByVal NomFichier As String)
Dim Chaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Dim Separateur As String * 1
' Séparateur Point Virgule
Separateur = ","
Cells.Clear
Application.ScreenUpdating = False
NumFichier = FreeFile
iRow = 1
Open NomFichier For Input As #NumFichier
Do While Not EOF(NumFichier)
iCol = 1
Line Input #NumFichier, Chaine
Ar = Split(Chaine, Separateur)
For i = LBound(Ar) To UBound(Ar)
Ar(i) = Replace(Ar(i), "M-", "")
Cells(iRow, iCol) = Ar(i)
iCol = iCol + 1
Next
iRow = iRow + 1
Loop
Close #NumFichier
Application.ScreenUpdating = True
End Sub
Je voudrais qu'il y ai une sorte de loop qui prend tous les fichiers d'un dossier.
J'ai trouvé un code qui fait pour un fichier, comment fait-on pour le changer à plusieurs fichiers:
Sub Tst()
Dim Fichier As Variant
ChDir ThisWorkbook.Path
Fichier = Application.GetOpenFilename("C:\Documents and Settings\a071843\Desktop\General\compatibilité, *.csv")
If Fichier <> False Then
Lire Fichier
End If
End Sub
Sub Lire(ByVal NomFichier As String)
Dim Chaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Dim Separateur As String * 1
' Séparateur Point Virgule
Separateur = ","
Cells.Clear
Application.ScreenUpdating = False
NumFichier = FreeFile
iRow = 1
Open NomFichier For Input As #NumFichier
Do While Not EOF(NumFichier)
iCol = 1
Line Input #NumFichier, Chaine
Ar = Split(Chaine, Separateur)
For i = LBound(Ar) To UBound(Ar)
Ar(i) = Replace(Ar(i), "M-", "")
Cells(iRow, iCol) = Ar(i)
iCol = iCol + 1
Next
iRow = iRow + 1
Loop
Close #NumFichier
Application.ScreenUpdating = True
End Sub