Importer des données depuis un fichier CSV ou TXT depuis Excel

6
20867

Bonjour et bienvenue sur cette vidéo où nous allons voir ensemble comment importer un fichier csv où texte depuis Excel vba. Ceci nous allons le faire on important des données de contact depuis un fichier CSV dans notre base de données sur Excel automatiquement.  

La mise en place du tableau

Nous allons commencer à mettre en place un tableau qui comporte les informations de contact. Et nous allons aussi ajouter une forme qui va représenter notre bouton.

Une fois notre tableau mise en place nous allons sélectionné l’emplacement des données dans notre tableau et lui donner un nom, dans notre exemple le champ je l’ai nommé importRange. ce champ nommé est important car c’est ici que nous allons placer les données qui se trouvent dans le fichier CSV ou le fichier texte.

Rechercher le fichier CSV

Alors afin de recherchez le fichier CS V depuis VBA nous allons créer un module dans ce module nous allons donc lui donner un nom de supp module qui sera import CSV, dans notre sebb nous allons donc créer 2 variables une qui sera le fils de dialogue qui est en fait l’explorateur de fichiers, et une autre variable qui sera du type String qui nous permettra le sauvegarder le chemin du fichier voulu

Sub importCSV()
    Dim dialogBox As fileDialog
    Set dialogBox = Application.fileDialog(msoFileDialogFilePicker)
    Dim selectedFile As String
End Sub

Désormais que nous avons défini les variables nous allons ouvrir la boîte de dialogue ou le navigateur de fichiers plutôt et dire qu’il faut le filtrer sourd des fichiers du type CS V et nous n’allons pas accepter de multiples fichiers mais uniquement un seul fichier. Si un fichier est sélectionné alors on va tout simplement prendre le lien du fichier et le placer dans le String qu’on a créé qui est le selededFile.

With dialogBox    
        .Filters.Add "CSV", "*.csv", 1
        .AllowMultiSelect = False        
        If .Show = True Then
            selectedFile = .SelectedItems(1)
        End If        
    End With

Importer les données dans Excel

Désormais que nous savons de quel fichier no us voulons transmettre les données dans notre tableau Nous allons dire à Excel vb à d’ouvrir le fichier ou le chemin le path a été gardé dans le select files, puis nous allons dire qu’il faut ouvrir le fichier et nous allons parcourir chaque ligne du fichier.

Pour chaque ligne qu’on a capturé dans le fichier nous allons dire qu’il faut séparer chaque mot de la ligne et le placer dans une array, afin de pouvoir délimiter les colonnes nous allons dire qu’il faut séparer les mots après le signe virgule.

une fois que nous avons rempli notre array nous allons les placer dans l’emplacement prévu dans notre tableau l’emplacement prévu c’est le champ nommé qu’on a défini et voilà nous avons importé les données d’un fichier externe dans notre tableau Excel.

If selectedFile <> "" Then
        Open selectedFile For Input As #1        
            Dim rowNumber As Long
            Dim lineFromFile As String
            Dim lineItems As Variant 'array of string
            Dim itteration As Integer            
            rowNumber = 1            
            Do Until EOF(1) 'false till end of file is reache then it will turn true            
                Line Input #1, lineFromFile ' reads a single line from an open sequential file
                lineItems = Split(lineFromFile, ",")                
                For itteration = 0 To 4
                    Range("ImportRange").Cells(rowNumber, itteration + 1) = lineItems(itteration)
                Next
                rowNumber = rowNumber + 1                
            Loop            
        Close #1
    End If

Conclusion  

Comme on a pu le voir ensemble importer des données externes dans notre tableau n’est pas sorcier et plutôt facile à mettre en place alors je vous conseille de créer un tableau intermédiaire où vous allez donc importez vos fichiers vérifier si tout était bon une fois que tout et bon alors uniquement on va l’incorporer à notre base de données finale.

J’espère que cela vous a plu et que cela vous aidera et on se retrouve dans une prochaine vidéo allez salut tout le monde   

6 Commentaires

  1. Bonjour,

    Merci beaucoup pour ce tutoriel vraiment très bien expliqué. Cela m’a beaucoup aidé.
    Cependant, j’ai un problème lors de l’import dû au nombre d’itération différent par ligne sur mon CSV. Pourriez-vous m’aider pour résoudre ce soucis.
    Car la fonction For / Next ne peut pas être utilisée dans ce cas présent.

    En vous remerciant par avance

  2. Bonjour Daniel,

    Je vous remercie pour vos explications, j’ai mis en application ce code pour 26 colonnes sur 22 lignes et lorsque je lance le code il faut plusieurs minutes avant de d’avoir tout copier les données de mon fichier .CSV
    quelle peut-être la raison de cette lenteur d’exécution ?

    Cordialement
    Fa

  3. Bonjour Daniel, merci bcp pour la vidéo. j’ai essayé le code et ça marche super bien. Mais en même temps je suis en train de travailler sur un projet pour importer des données txt structurées différemment. C’est dire que dans mon fichier texte, il y a des lignes sur lesquelles des virgules peuvent se suivre (ce qui signifie qu’à l’import, les cellules correspondantes seront vides dans le classeur). J’aimerais savoir comment adapter le code pour pouvoir réussir l’import de ce genre de données. Merci bien

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.