XL 2016 Export .csv avec conditions sur format de cellule

mactoche

XLDnaute Nouveau
Bonjour à tous

Je suis en train de formater un fichier d'export .csv mais j'aimerais qu'il est un certain alignement une fois ouvert par UltraEdit (ou autre éditeur txt)
Je m'explique

Pour le moment mes exports sont de cette forme :
Mon soucis vient des colonnes C & D, en effet la C doit avoir un format de 7 caractères et la D de 10 caractères, si le chiffre ou lettre saisi dedans ne fait pas le nombres max de caractères alors dans l'export il doit y avoir des espaces pour aligner les colonnes

A B C D E F G H I J K
2020-08-20_08h12_47.png


Alignement des colonnes doit être comme sur ce fichier

A B C D E F G H I J K
2020-08-20_08h17_45.png


On constate aussi que sur la 2ème image chaque lignes se terminent par un ;
Alors que sur le 1er fichier se n'est pas le cas.

J'ai regardé et testé tous les formats de cellules, il n'y a qu'avec le caractère "0" que j'arrive à formater la colonne "C" correctement, dès qu'il y a un enchaînement de chiffres je ne sais plus le faire. Idem pour la colonne D qui elle a soit 3 caractères soit 10 donc le formatage de 10 obligatoire est complexe.
Avez vous une idée simple pour ce pb ?

Merci d'avance
Kriss
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Si les données des colonnes "C" et "D" sont des formules, peut-être rajouter à ta formule la fonction texte() ou rept().
=TEXTE("Ta formule";"0000000")
cela mettra des "0" devant le chiffre si il est inférieur à 7 caractères.
ou
=TEXTE("Ta formule";"??????0")
cela mettra des blancs devant le chiffre si il est inférieur à 7 caractères.
ou
=REPT(" ";7-NBCAR("Ta formule"))&"Ta formule"

JHA
 

mactoche

XLDnaute Nouveau
Merci pour ce retour JHA

il n'y a en fait pas de formule dans ces cellules, juste du texte.
J'ai besoin de combler les vides par des "espaces", donc tu me conseils de mettre des "?" c'est ça ?
Ex : =TEXTE("???????0")

Et si la cellule est remplie par "996" ou "AFR" cela va fonctionner ?

Merci
Kriss
 

mactoche

XLDnaute Nouveau
@JHA je viens de tester cette formule dans la cellule
=TEXTE("996";"??????0")
mais cela me met les espace avant le chiffre 996 alors qu'ils doivent être après.
Et il faudrait que je face ça a toutes les cellules en respectant le chiffre dedans, ce serait trop long.

2020-08-20_09h33_24.png


En fait je me demande si il existe une possibilité en personnalisant le format de cellule comme sur la photo :

En sachant que ma cellule a un nombre de 5 caractères (20840) et que la cellule doit en avoir 7 je force le format : #" " (avec 2 espaces)
Mais comme toutes mes cellules n'ont pas le même nombre comment formaliser à toutes les cellules le fait qu'elles doivent avoir 7 caractères max, et qu'en cas de nombre inférieur à 7 caractères combler avec des "ESPACES" après le nombre.

2020-08-20_09h35_28.png


Merci
Kriss
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Un format personnalisé ne modifie pas la donnée brute, c'est du tape à l'oeil.
Si tu ajoutes une colonne cela doit pouvoir le faire avec la formule proposée sinon, il ne te reste plus que VBA mais là je ne peux pas t'aider, désolé.

JHA
 

Discussions similaires