Importer des données

Résolu
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

  1. Modérateur
    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
    1. Merci pour ton aide ! C'est la fonction Dir qu'il me manquait :-)
      Ta réponse m'épargne pas mal de temps, merci.
      0