CSV Format colonne alphanumérique fixe

mcchipie Messages postés 4 Statut Membre -  
mcchipie Messages postés 4 Statut Membre -
Bonjour,

Je travaille sur un fichier excel.
Le fichier contient des données issues d'une requete sur Oracle.

Dans ces colonnes se trouvent des chaines de caractères.

par exemple : 1, B etc

Je dois enregister ce fichier au format csv ou txt, mais avec une longueur fixe.
Par exemple la colonne A contient :
1
2
d
5
5

Je veux que la colonne enregister sous csv ou txt ait 5 caractères de longueur(complété avec des blancs).

Comment faire?

Merci d'avance
A voir également:

6 réponses

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Je veux que la colonne enregister sous csv ou txt ait 5 caractères de longueur(complété avec des blancs).
Beh oui, mais quel blanc ? dans l'exemple que tu montre il y a 5 données ?
Développe un peu mieux pour qu'ont puisse t'aider.
Et un peu plus complet.. combien de colonne(s) ?
Et tu est certain que les données en colonne doivent êtres mémorisées en ligne ?
A+
0
mcchipie Messages postés 4 Statut Membre
 
Justement, toutes les données sont dans la colonne.
Le fichier sera transformé en fichier plat.
Je voudrais obtenir :

1(blanc)(blanc)(blanc)(blanc)
2(blanc)(blanc)(blanc)(blanc)
d(blanc)(blanc)(blanc)(blanc)
5(blanc)(blanc)(blanc)(blanc)
5(blanc)(blanc)(blanc)(blanc)

Le caractère (blanc) équivaut à un espace.

On ne peut pas être sur de la longueur de la zone de départ, et on est sur de la longueur de la zone de sortie qui est fixe pour toute une colonne.

Y a il une solution?

Merci d'avance
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Mettre des espaces dans un fichier texte conviendra pas.
Pour un CSV
-> Pour que les champs vides soient pris en compte il faut mettre des entêtes de colonnes (des titres).
-> Copier la feuille dans un nouveau classeur
-> Sauver sous.. en CSV
A+

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Si j'ai bien compris ta question, sur une autre feuille en A1 :
=GAUCHE(Feuil1!A1&" ";5)
à recopier à droite et en bas, puis enregistrer cette feuille en csv.

eric.

0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour Eric,
Comment tu fais pour enregistrer une feuille en CSV ?
A+
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Salut lermite,

Ben 'enregistrer sous..." et choisir le format "*.csv" dans le type de fichier.

eric

PS: seule la feuille active est sauvegardée.
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Eric -> Je pense que tu devrais revoir ta solution
1°) la formule GAUCHE génère une erreur et quand je regarde dans l'aide cette formule renvoi les x caractères gauche d'une chaîne ?
2°) Sauver un CSV avec des formules sauve toute les feuilles et garde les formules dans les cellules ?
Ou alors je m'y suis vraiment mal pris.
A+
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Je l'avais déjà testée...

1°) la formule GAUCHE génère une erreur et quand je regarde dans l'aide cette formule renvoi les x caractères gauche d'une chaîne ?
Heuuu, une erreur ? tu es sûr ?

Mais effectivement il y a une erreur dans mon post : c'est bien entendu 5 espaces qu'il faut concaténer :
=GAUCHE(Feuil1!A2&" ";5)
et prendre la partie gauche pour avoir le texte suivi de x espaces pour faire 5 caractères.

Ce classeur me fourni ce csv.

A ouvrir dans le bloc-note. Excel convertissant les numériques à l'ouverture, ceux-ci perdent leurs espaces.
Le but ne doit de toute façon pas être de l'ouvrir dans excel, mais de fournir un fichier à destination d'une autre appli.

eric
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
PS: à nouveau un seul espace dans la formule (??).
ccm les enlève....
lire :
=GAUCHE(Feuil1!A2&"     ";5)

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
mcchipie, ça te fatigue de dire merci ?
0
mcchipie Messages postés 4 Statut Membre
 
Entre tous les sujets et problèmes techniques dus à Excel, VBA, Cobol et Unix, je n'ai eu le temps de commencer à tester la solution hier.

Merci quand même, Eriiic. Très ingénieux comme solution, pour ma part, jamais je n'y aurais pensé!
0