Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

importation CSV de lignes en une cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

damiencap87

XLDnaute Nouveau
Bonjour à tous, je bloque sur une importation d'un fichier en csv.

La structure en txt (séparation par tabulations) :
En rouge : colonne 1
En bleu : colonne 2
En vert : colonne 3


Classeur 2 anneaux Dos 50 mm EXACOMPTA
Classeur A4 en polypropylène. Porte-étiquette soudé.
Etiquette utilisable recto-verso. OEillets de maintien
Coins métalliques et renforts. Dos extra large Format A4 maxi.
Dimensions extérieures : 30 x 32 cm.
Dos 50 mm Noir

56 636

Donc ma question :
Comment peut on mettre la colonne 2 en une seul cellule avec retour à la ligne?
J'ai essayé dans le fichier txt de mettre un CR, mais pas d'effet.
Merci
 
Re : importation CSV de lignes en une cellule

Bonjour,

Je ne suis pas parfaitement sur de comprendre ce qui est réellement dans ton fichier texte (je veux dire, le texte lui même et l'arrangement du texte) et ce que tu veux obtenir dans ton fichier Excel.

Néanmoins, il me semble que ce qui suit te donnera des éléments de réponse :

1) Dans Excel, si on veut ajouter un saut de ligne à l'intérieur d'une cellule, il faut, bien sur, éditer la cellule, se placer à la position où on veut inserer le saut de ligne et presser les touches ALT+ENTREE.

2) Ce "saut de ligne" est enregistré par Excel comme un caractère spécial dont le code (le code ASCI) est 10 (char(10), si on veut l'exprimer avec une formule Excel).

3) Donc, si on veut qu'un fichier texte "csv" contienne l'information de saut de ligne dans une cellule, il faut insérer ce caractère spécial à l'endroit voulu.

4) Mais ce n'est pas tout ... Il faut aussi enclore le texte à mettre dans une seule cellule par des guillemets :

Code:
"mon texte à mettre dans une seule cellule"

5) Le problème est d'écrire ce caractère spécial dans le fichier texte (csv).
C'est peut-être possible dans Windows en utilisant le racourci clavier :

Code:
ALT+0010

qui permet d'écrire le caractère dont le code ASCI est 0010 (ou plus généralement n'importe quel caractère, si on utilise le bon code).

Mais, je pense que cela ne marchera pas, car Windows va certainement générer un vrai retour ligne dans le fichier texte.

Je propose donc une méthode alternative (il y en peut-être d'autres) :

- Créer un fichier Excel et entrer deux mots sur deux lignes dans une seule cellule avec la combinaison ALT+ENTREE :
Code:
Mot1 ALT+ENTREE Mot2

- Sauvegarder en format csv.

- Ouvrir le fichier ainsi sauvegardé de préférence avec Notepad.
On remarque que le texte de la cellule est bien entouré par des guillemets
Si on utilise Notepad, on remarque que le saut de ligne n'apparait pas.​
- Amener le curseur à la position où le saut de ligne a été inséré dans Excel.
On remarque, lorsque l'on tente de "franchir" cette position, qu'il faut appuyer deux fois sur les flèches droite ou gauche du clavier.
Cela signifie qu'il y a un caractère "invisible".​
- Selectionner ce caractère à l'aide de la combinaison SHIFT+FLECHE (DROITE ou GAUCHE en fonction de la position du curseur).

- Copier le caractère (CTRL+C).

- Ca y est le caractère de contrôle est dans le clipboard ! Ouf !

6) Coler ce caractère dans le fichier csv à importer dans Excel à toutes les positons où un saut de ligne dans une cellule est nécessaire.

7) Enclore par des guillemets toutes les zones du fichier csv comportant des sauts de ligne et à importer dans une seule cellule.


J'espère que ces indications qui, si elles ne t'ont pas donné mal à la tête, t'aideront résoudre ton problème 🙂.

@+
 
Dernière édition:
Re : importation CSV de lignes en une cellule

Bon le résultat n'est pas chouki!

Il renvoi la 2°ligne en colonne A, j'ai essayé toutes les positions mais ça fait des trucs bizarres (sous excel).

On va faire plus simple : peut on mettre plusieurs lignes dans la même cellule mais sans le retour !?

Peut-on le faire faire directement dans EXCEL ?
a+
 
Re : importation CSV de lignes en une cellule

Est ce que tout ton texte devant figurer sur une même ligne Excel est bien aussi sur la même ligne dans le csv ?

Je n'ai pas explicitement précisé dans mon post que toutes les "lignes" que tu veux mettre dans une même cellule doivent, dans ton fichier csv, être sur la même ligne, mais séparées par des char(10).

Et même plus : si tu veux vraiment que tout ton texte soit sur une même ligne dans Excel, il faut que dans ton fichier texte, il en soit de même et que chaque texte devant être dans une seule cellule soit séparé du suivant par une "," ou un ";".

Bon, le pb, c'est que je ne suis toujours pas bien sur du format de ton fichier d'entrée et du résultat que tu veux.

Mais avec ce que j'ai compris, j'ai créé un fichier csv.

Vois, si ça te convient.

En tout cas, sur mon PC, ça donne exactement le résultat auquel je voulais arriver, ie : 3 cellules A1, B1 et C1, sur la même ligne, remplies avec du texte.

Code:
A1 =	Classeur 2 anneaux Dos 50 mm EXACOMPTA
B1 =	Classeur A4 en polypropylène. Porte-étiquette soudé. 
	Etiquette utilisable recto-verso. OEillets de maintien
	Coins métalliques et renforts. Dos extra large Format A4 maxi. 
	Dimensions extérieures : 30 x 32 cm. 
	Dos 50 mm Noir 
C1 =	56 636

Cela dit, en fonction du temps que te prendrait les manips à faire pour rendre ton fichier csv directement importable dans Excel, il est peut-être plus simple de faire une macro qui irait placer elle même le texte dans les bonnes cellules ...

@+
 

Pièces jointes

Dernière édition:
Re : importation CSV de lignes en une cellule

je te remercie c'est le résultat que je voudrais mais je me vois mal à l'appliquer sur 30000 lignes.
Et le l'autre contrainte je n'ai pas le même nombre de lignes à chaque fois.

voir mon fichier

Et pour la macro je vois pas trop comment lui dire si je n'ai pas le même nombre de ligne?
 

Pièces jointes

Re : importation CSV de lignes en une cellule

J'ai fait la Macro.

Elle s'appuie sur le nombre de tabulations qu'il y a devant le texte de chaque ligne de ton fichier .txt.

Règle :

Nombre de tabulations + 1 = Numéro de la colonne dans laquelle on doit mettre le texte qui suit.

Je sais que je dois passer à la ligne suivante dans Excel quand le nombre de tabulations de la ligne en cours est inferieur à celui de la ligne précédente.

Il y avait une exception dans ton fichier exemple :

"Dos 50 mm Noir" commencait par un espace suivi d'une tabulation.

J'ai effacé l'espace, pour que je n'ai pas d'exceptions à gérer dans la macro.

Si tu peux appliquer cette règle à tout ton fichier cela marchera avec la macro telle qu'elle existe en attachement.

Sinon, dis le moi : je peux gérer cette exception.

🙂
 

Pièces jointes

Dernière édition:
Re : importation CSV de lignes en une cellule

OK c'est super! merci beaucoup!! tu m'enlève une grosse épine du pieds.
Pour l'espace je n'ai pas vu de problème.
J'ai 2/3 modifs à faire dans mon fichier txt pour que soit nickel.
Par contre, je ne comprends pas si j'ai une tabulation sur la même ligne, il me le combine avec la cellule d'avant.
a+
 
Re : importation CSV de lignes en une cellule

Oui, je ne l'ai pas dit dans mon post précédent, la "règle" est un peu plus compliquée.

Si deux lignes consécutives du fichier txt ont le même nombre de tabulations, j'interprète cela comme des textes de la même cellule. Ca s'applique a n'importe quel nombre de tabulations (deux lignes consécutives avec 0 tabulation seront stockées dans la même cellule, pas seulement deux lignes consécutives avec 1 tabulation, comme dans ton exemple du début).

Je me suis dit (peut-être à tort) que cela serait plus général.

Voila, là je vais aller dormir, car il est bien tard par chez moi (3:15 du mat 🙂).

@++
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…