Importer des données

Résolu
kvjld35 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
kvjld35 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans le cadre d'un projet sur lequel je travaille je suis confronté à une situation qui me pose problème.
J'ai en fait un répertoire dans lequel sont stockés plusieurs fichiers .csv et j'aimerai que ma macro récupère les données de chacun d'entre eux pour les importer dans une feuille excel. Pour être clair, je voudrai que ma macro :

-Récupère les données du 1er fichier
-Les Importe dans Data.xls
-Récupère les données du 2eme fichier
-Les importe dans Data.xls
-etc...

Cependant le problème est que le nom des fichiers du répertoire est inconnu, c'est à dire qu'ils résultent d'acquisitions par un appareil et changent à chaque fois..

Voyez-vous une solution à mon problème ?

Merci à tous pour le temps que vous prendrez à me répondre :-)


1 réponse

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Ce code va boucler sur tous les fichiers csv d'un même répertoire.
Ne fonctionne pas avec les répertoires "spéciaux" de windows (bureau etc...). Si c'est le cas, on peut faire différemment...

Sub ImportCsv()
    Dim objShell As Object, objFolder As Object
    Dim Chemin As String, Fichier As String
    
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)

    If objFolder Is Nothing Then
        MsgBox "Abandon opérateur", vbCritical, "Annulation"
    Else
        Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & "\"
        Fichier = Dir(Chemin & "*.csv")
        Do While Len(Fichier) > 0
            'ici le code d'import des fichiers
            Debug.Print Chemin & Fichier
            Fichier = Dir()
        Loop
    End If
End Sub

0
kvjld35 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ton aide ! C'est la fonction Dir qu'il me manquait :-)
Ta réponse m'épargne pas mal de temps, merci.
0