Microsoft 365 nombre à 24 caractères n'apparaît pas correctement

apfwl.87

XLDnaute Occasionnel
Bonjour à tous,
J'ai un fichier csv que je désire ouvrir dans Excel. Sur le principe, rien de compliqué sauf que lorsque je demande de répartir le contenu dans des colonnes différentes, là c'est autre chose. :) En effet, dans l'une des colonnes devrait apparâitre un chiffre à 24 caractères mais malheureusement cela ne va pas. J'ai essayé de formater le document en texte avant et pendant l'export mais rien à faire. Systématiquement la colonne en question vient au format standart et donc mon chiffre apparaît ainsi. 2.3297201133565E+23 au-lieu d'ainsi: 232972011335650145590027. Est-ce que quelqu'un peut m'aider?

merci d'avance pour votre réponse
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Si vous utilisez la conversion via le menu Données/Convertir, définissez le format de la colonne concernée à "Texte" dans la boite de dialogue "Convertir".

Si vous ouvrez le fichier .csv (via Excel - Fichier Ouvrir - type "Fichier Texte" et non pas en double-cliquant sur le fichier dans l'explorateur), il se peut qu' Excel vous place immédiatement en mode "Convertir".
Dans ce cas, définissez le format de la colonne à 14 chiffres comme du texte.

edit : Bonjour @job75 :)
 
Dernière édition:

job75

XLDnaute Barbatruc
La lecture séquentielle du fichier CSV permet de restituer le texte de 24 chiffres :
VB:
Sub Import_CSV()
Dim texte, a(), n&, b()
Open ThisWorkbook.Path & "\Fichier CSV.csv" For Input As #1 'accès au fichier
Do While Not EOF(1) 'EndOfFile: fin du fichier
    Line Input #1, texte 'récupère la ligne
    ReDim Preserve a(n) 'tableau VBA, base 0
    a(n) = texte 'stocke le texte dans le tableau a
    n = n + 1
Loop
Close #1 'fermeture du fichier
'---transposition---
ReDim b(1 To n, 1 To 1)
For n = 1 To UBound(b)
    b(n, 1) = a(n - 1)
Next
'---restitution---
With [A1]
    .EntireColumn.NumberFormat = "@" 'format texte
    .Resize(n - 1) = b
End With
End Sub
Téléchargez les fichiers zippés joints dans le même dossier.

Salut mapomme.
 

Pièces jointes

  • Dossier(1).zip
    14.5 KB · Affichages: 18

apfwl.87

XLDnaute Occasionnel
Bonjour à tous,

Merci pour vos réponses.

Malheureusement avec l'apostrophe cela ne fonctionne pas. J'ai également essayé d'ouvrir le fichier via Excel - Fichier Ouvrir - type "Fichier Texte" mais là aussi sans succès. je vais essayer le code envoyé par mapomme. mais là j'ai besoin de temps. :) ça fait longtemps que je n'ai plus "programmé" en visual basic

Bonne soirée à tous
 

apfwl.87

XLDnaute Occasionnel
ah ups pardon et merci Job75.

J'ai essayé d'utiliser la macro mais je suis trop nulle dans ce domaine et e n'y suis pas arrivée. En revanche, en cherchant justement à installer cette macro, je suis tombée tout à fait par hasard sur une solution:
J'ai ouvert un nouveau classeur Excel puis: ->registre données -> obtenir des données à partir d'un fichier texte/csv ->importer le fichier csv désiré ->une fenêtre s'ouvre -> sous "Détection du type de données" sélectionner ce que l'on veut (dans mon cas j'ai choisi "selon le jeu de données complet") - > cliquer sur "transformer les données" -> une nouvelle fenêtre s'ouvre -> cliquer sur "Fermer et charger" -> le nouveau classeur se rempli des données du fichier csv -> enregistrer le classeur au format .xlsx. Et voilà.

alors même si je n'ai pas réussi à utiliser ta macro, merci job75 car sans toi je n'aurais pas cherché aussi intensivement et donc je ne serai pas tombée sur la solution.

Bonne soirée à tous et restez en bonne santé :)
 

soan

XLDnaute Barbatruc
Inactif
Bonsoir apfwl.87, job75, le fil,

je crois que tu n'as pas besoin de modifier le fichier .csv ; tu dois juste mettre le fichier .xlsm et le fichier .csv dans le même dossier (celui de ton choix) ; ensuite, ouvre le fichier Excel .xlsm et clique sur le bouton ➯ la macro du fichier .xlsm traitera ton fichier .csv de 949 lignes comme il faut, et comme tout autre fichier .csv de même structure.​

soan
 

Statistiques des forums

Discussions
311 720
Messages
2 081 899
Membres
101 834
dernier inscrit
Jeremy06510