Hello,
voilà mon petit problème j’ai besoin de générer une liste toute conne au en un tableau lisible par Excel. D’habitude je créé un fichier texte tout con en séparant les colonnes par un tabulation et ca marche, mais là je tombe sur un os: j’ai un colonne d’identifiants constitués de chiffres or certains ont des zéros en premiers caractéres. Mais Excel décide que voilà, on va dire que c’est un chiffre et donc que on va supprimer les 0 … alors qu’ils existent!
Histoire d’etre clair, voilà un screenshot avec le fichier ouvert en texte en haut à gauche et sous excel en bas à droite (la première colonne).
J’ai essayé d’autre solution (séparation par virgule, utilisation de quotes, modification du format de cellule …) le résultat ne change pas.
Des idées?
T’as essayé donc de préfixer tes valeurs par un ’ ? (Et essaie de ne mettre qu’un seul quote au debut, et pas à la fin de ta chaine) Perso j’utilise plutôt “;” ou “,” comme séparateur dans les .csv, essaie au cas où.
'000145;'001234;Toto;Machin; etc.
Mais j’aurais tenté ce que tu as fais, j’ai pas plus d’idées…
bon alors
tu fais sois un copier / collage special valeur
soit tu l’enregistres en csv
soit tu le fusionne avec une autre colonne pour le forcer a garder les zeros.
Soit tu prends la colonne tu fais un copier coller sous un autre editeur de texte et tu la remet.
Soit tu triches :
tu fais une xeme colonne avec un caractere a la noix comme ¤ que tu concatene a ton code et ensuite dans cette colonne tu enleves tout les caracteres a la noix.
Bussiere
Générer le fichier en CSV ne change rien. Et je dois impérativement faire cette génération en texte pour des soucis de performance.
Ca va se finir par changer l’extension en .txt et que les utilisateurs vont devoir se démerder B)
Je fais ca tout les jours des dixaines de fois, pour importer un fichier texte, utilise l’outil d’import : Données -> Données externes -> Importer le fichier texte, ensuite tu choisié délimité ou largeur fixe, dans l’étape suivante tu as d’autres paramètres et après tu peux choisir de tout importer en texte pour conserver tes zéros en début de champ.
Voilà…
Il y a aussi d’autres solutions, tu fais un copier-coller de ton fichier texte dans Excel, chaque ligne se retrouvera dans la colonne A et ensuite utiliser Données -> Convertir, tu auras la même boite que celle décrite ci-dessus.
Oui mais ce que je cherche c’est d’avoir un truc transparent pour l’utilisateur. Toutes les manips données je les connais, je souhaiterais les leur épargner B)
Et bien tu fait une macro, j’en ai une disponible, je peux te l’envoyer demain si ca t’intéresse. A toi de l’adapter à tes besoins spécifiques.
Pour forcer l’affichage du zéro en tête d’un chiffre, dans excel généralement je mets un " juste devant. Essaye la même chose dans ton CSV.
Sinon, il existe des librairies en perl par exemple permettant de créer un vrai tableau excel
Alors, l’apostrophe ’ en début de texte dans une cellule permet de transformer une valeur numérique en valeur texte, et donc de s’affranchir de la disparition des 0 qui serait au début.
Sinon, donner à la colone le formatage “texte” ou “standard”… En 2 clics c’est fait…
(ou alors je suis passé à coté de quelque chose dans la description du problème)
Tu peux piloter excel par le biais du framework .net. Si jamais du développe déjà en C#, c’est la solution la plus simple.
Sinon pour revenir à l’import de données natif de Excel tu peux sauvegarder l’import de données (“Enregistrer la définition de la requête”)et surtout la modifier en allant dans la liste déroulante des listes de zones en haut à gauche (j’ai cherché et enfin trouvé cette option il n’y a pas longtemps). ça c’est pour la personne qui a réalisée la première fois le fichier excel. On peut aussi cocher “remplacer le contenu des colonnes si nécessaires”.
Ensuite l’utilisateur final il n’a qu’à faire cliquer droit “! Actualiser les données” et il n’a qu’à retrouver le fichier texte en import s’il n’a pas décoché “Demander le nom du fichier à l’actualisation”. Et comme la définition de l’import a été sauvergardée, et surtout réutilisée, le format des colonnes comportant des codes avec chiffres, mais n’étant pas à proprement parlé du numérique, sera compris comme du texte, si l’import a été défini comme cela, pour la ou les colonnes en question.
edit: Cette solution n’est valable que si le format du fichier en import ne change pas tout les 4 matins.