Multiple Import fichier CSV

  • Initiateur de la discussion Initiateur de la discussion candabalan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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:
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
'------------------------------------------
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
505
Réponses
4
Affichages
255
Réponses
5
Affichages
208
  • Question Question
Réponses
7
Affichages
337
Retour