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 !
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
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 🙂.
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 ...
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?
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.
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+
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