Extraire les données d'un fichier CSV

Résolu
Anthelm Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   -  
Anthelm Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   -
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...)

2 réponses

jee pee Messages postés 41519 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
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
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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



0
Anthelm Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   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!
0