Traitement fichier CSV (séparation des données dans des cellules différente

Bonjour,

Je voudrais importer des données en CSV puis séparer les différents champs dans des cellules différentes d'une même ligne. Quelqu'un peut-il me communiquer les procédure ?

D'avance je vous en remercie.

Guy Chanrond - Cognac

Bonjour,

Tout dépend de vos données comment elles sont présentées et du délimiteur utilisé mais j'avais fait ce post dans un cas similaire pour séparer les données par délimiteur.

Cldt,

Bonsoir et merci pour cette réponse.

Mes données sont séparées par des virgules.

En espérant que cela vous éclairera sur mon besoin, je vous souhaite une bonne soirée.

Bonjour,

Donc même chose que dans le post cité en lien.

Suivez cette procédure après avoir sélectionné votre colonne de valeur (étape 1) :

41870 6069b71f3db9c997972613

cdlt,

Merci beaucoup !

Désolé mais je ne vois pas de lien pour accéder au post dont vous parlez.

Pouvez-vous me le retransmettre ? Merci

Bonjour,

Il s'agit du "ce" surligné en vert dans ma première réponse. Subtile mais fonctionnel.

Cdlt,

Bonjour toute l'équipe.
Votre fichier CSV doit avoir un séparateur (virgule, point-virgule, tabulation, etc. Déjà dit).
Voici un exemple de macro avec le point-virgule comme séparateur. Les 2 fichiers doivent être dans le même dossier.

Attention à une chose, il ne faut pas de virgules parasites dans votre fichier CSV. La virgule d'une adresse est une virgule parasite qu'il faudra supprimer dans le fichier CSV avant traitement.

30datas.csv (10.83 Ko)
36importerl.xlsm (19.71 Ko)

Merci à Ergotamine et Optimix,

Fonctionnement parfait. Merci pour vos bons conseils.

La petite macro ci-dessous permettra de détecter s'il y a globalement au moins une virgule parasite dans votre fichier. Ici j'ai pris datas.csv comme fichier à contrôler (les deux doivent être dans le même dossier). S'il y en a beaucoup, il est possible de mettre toutes les lignes parasitées dans un tableau pour pouvoir faire le nettoyage.

    Dim table() As String, ligne As String
    Dim i As Long, compt As Long
    Dim nbChamps As Integer

    Open ThisWorkbook.Path & "\datas.csv" For Input As #1
        While Not EOF(1)
            compt = compt + 1
            Line Input #1, ligne
            table = Split(ligne, ",")
            If compt = 1 Then
                nbChamps = UBound(table)
            Else
                If UBound(table) <> nbChamps Then
                    MsgBox "Votre fichier CSV comporte au moins un séparateur parasite, vous devez nettoyer ce fichier pour pouvoir mettre en tableau vos données.", vbCritical + vbOKOnly, "Source à corriger"
                    End
                End If
            End If
        Wend
    Close #1
    MsgBox "Votre fichier source est sain, vous pouvez l'importer."
Rechercher des sujets similaires à "traitement fichier csv separation donnees differente"