Multiple Import fichier CSV

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
 

xltools

XLDnaute Junior
Re : Multiple Import fichier CSV

BOnjour

Pour ouvrir tous les fichiers csv d'un répertoire, voici le code.

Code:
Sub test()
    Dim chemin As Variant
    Dim fichier As Variant
    chemin = "C:\Documents and Settings\a071843\Desktop\General\compatibilité\"
     
    fichier = Dir(chemin & "*.csv")
    Do While fichier <> ""
        Workbooks.Open Filename:=chemin & fichier
        ChDir chemin
        fichier = Dir
    Loop
End Sub


Hanane.
 
Dernière édition:

MichD

XLDnaute Impliqué
Re : Multiple Import fichier CSV

Bonjour,

Voici un exemple :


'--------------------------------------
Sub ImporterFichiersTextes()

Dim A As Long
Dim T As Variant, Fichier As String
Dim Chemin As String, Sep As String
Dim WholeLine As String, FName As String

Application.ScreenUpdating = False

'Chemin où sont les 2 fichiers
'Ne pas oublier le "\" à la fin!
Chemin = "C:\Users\DM\Documents\"

'Séparateur du fichier texte
Sep = ";"

'Nom de la feuille de calcul où
'tu veux importer les données
With Worksheets("Sheet1")
'détermine la première ligne où s'écrira
'la première ligne de données
If .Range("A1") = "" Then
A = 1
Else
A = .Range("A65536").End(xlUp)(2).Row
End If

'Début pour boucler sur tous les fichiers .csv
'du répertoire de départ représenté par la variable chemin
Fichier = Dir(Chemin & "*.csv")

Do While Fichier <> ""
FName = Chemin & Fichier
Open FName For Input Access Read As #1
'Boucle sur chaque ligne du fichier ouvert
While Not EOF(1)
'WholeLine représente le contenu de la ligne lu
Line Input #1, WholeLine
'Place dans un tableau T chaque partie de la ligne
'coupée par le séparateur d'éléments
T = Split(WholeLine, Sep)
'Copie dans les cellules de la feuille de calcul
'le contenu du tableau T
.Range("A" & A).Resize(, UBound(T) + 1) = T
A = A + 1
Wend
'Ferme le fichier .csv ouvert
Close #1
Fichier = Dir()
Loop
End With
End Sub
'------------------------------------------
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 882
Membres
103 981
dernier inscrit
vinsalcatraz