Extraire les données d'un fichier CSV [Résolu]

Signaler
Messages postés
156
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
12 décembre 2019
-
Anthelm
Messages postés
156
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
12 décembre 2019
-
Bonjour,

J'utilise un logiciel pour faire des devis que je peux convertir ensuite en commande: cela crée un fichier CSV.

Je souhaite pouvoir extraire certaines données d'une commande créée pour les remettre sur Excel.

J'ai terminé mon devis et créé ma commande, voici à quoi ressemble le fichier CSV, une grosse chaine de caractère pour chacun des éléments du devis:

126456|ReferenceAffaire|NomDuClient|NumDevis12356|04/12/2019|A|1|0||GammeAlu - Fenêtre coulissante 2 vantaux|1.000|||40CL|1628|F|6155.33|34566.00|... etc etc.

Le séparateur n'est pas ce à quoi je m'attendais, je pensais que ce serait un point virgule, mais c'est un : "|".

Bref, pour chaque menuiserie sur mon devis, j'ai une ligne contenant une chaine de caractère comme ça dans mon fichier CSV.


Admettons que cette chaine soit en cellule A1, je souhaiterais avoir une macro exécutable qui donne en A2 une "concaténation", désolé du terme, de certaines valeurs.

Je pense que j'aurais toujours le même nombre de séparateurs, donc on pourrait simplement imaginer:
"La 2eme, 3eme, et 5eme valeur", par exemple.
Ce qui donnerait en A2:
ReferenceAffaireNomDuClient04/12/2019

Evidement le résultat attendu n'est pas ça, mais avec cela je devrais pouvoir me débrouiller pour ajouter les espaces et mettre en page mon résultat.

Une piste?

Les valeurs dont j'aurais besoin seront toujours les mêmes (2eme 3eme et 5eme par exemple).
Le séparateur sera toujours le même.

Merci pour votre aide!

(A terme, je vais tenter d'extraire toute une commande pour remettre sur Excel chaque produit dans la colonne A, la quantité en colonne B, le prix en colonne C...)

4 réponses

Messages postés
27528
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
13 décembre 2019
5734
Bonjour,

Tu peux avec le bloc notes changer le | en ;

Mais si tu renommes le .csv en .txt et que tu l'ouvres avec excel, là il va te proposer de choisir le séparateur.

Cdlt
Messages postés
6434
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 décembre 2019
423
Bonjour,

Faire Alt F11 pour accéder au module de la feuille concernée

mettre cette macro qui se déclenche au double clic sur A1 :

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
Range("A2").Value = Split(Target.Value, "|")(1)
Range("A2").Value = Range("A2").Value & "  " & Split(Target.Value, "|")(2)
Range("A2").Value = Range("A2").Value & "  " & Split(Target.Value, "|")(4)
End If
End Sub


enregistrer classeur prenant en charge les macros

(A terme, je vais tenter d'extraire toute une commande pour remettre sur Excel chaque produit dans la colonne A, la quantité en colonne B, le prix en colonne C...)

cela on peut le faire directement, c'est facile



Anthelm
Messages postés
156
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
12 décembre 2019
1
C'est parfait, merci!

( c'est facile ) oui je pense pouvoir avancer un peu tout seul après ça :) Je reposterai ici si je bloque!