A voir également:
- Application.getopenfilename csv
- Formule excel pour additionner plusieurs cellules - Guide
- Liste déroulante excel - Guide
- Verrouiller des cellules excel - Guide
- Excel cellule couleur si condition texte - Guide
- Excel compter cellule couleur sans vba - Guide
11 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 nov. 2009 à 11:53
19 nov. 2009 à 11:53
Salut,
t'affoles pas ça va viendre!!!
Peux tu nous montrer la partie de ton code qui "stocke" ces fameux nombres?
t'affoles pas ça va viendre!!!
Peux tu nous montrer la partie de ton code qui "stocke" ces fameux nombres?
Salut,
Le stockage des valeurs se fait à l'ouverture du fichier csv de la manière suivante :
'Sélection du fuchier
Nom_Fic_Dep = Application.GetOpenFilename("Csv Files (*.csv), *.csv", , "Sélection du fichier carburant")
'Ouverture du fichier sélectionné
Set Fic_dep = Workbooks.Open(Filename:=Nom_Fic_Dep)
Si je met un point d'arrêt juste après l'ouverture du fichier je constate que Excel a reconnu les valeurs chiffrées comme des champs numériques et à supprimé les zéros.
Je me demande s'il n'y a pas une façon de désactiver la reconnaissance des formats des cellules pour tout afficher au format texte...
Le stockage des valeurs se fait à l'ouverture du fichier csv de la manière suivante :
'Sélection du fuchier
Nom_Fic_Dep = Application.GetOpenFilename("Csv Files (*.csv), *.csv", , "Sélection du fichier carburant")
'Ouverture du fichier sélectionné
Set Fic_dep = Workbooks.Open(Filename:=Nom_Fic_Dep)
Si je met un point d'arrêt juste après l'ouverture du fichier je constate que Excel a reconnu les valeurs chiffrées comme des champs numériques et à supprimé les zéros.
Je me demande s'il n'y a pas une façon de désactiver la reconnaissance des formats des cellules pour tout afficher au format texte...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 nov. 2009 à 12:50
19 nov. 2009 à 12:50
En cherchant bien, j'ai trouvé ceci Un superbe fichier de Lermite222.
Je me suis permis d'en "construire" un exemple pour moi. Je pense que tu auras là toutes tes réponses...
Je te file le lien ci dessus, étudie ce code attentivement, il est très bien fait. Si tu veux perfectionner ce que tu es en train de faire, analyse la méthode utilisée dans ce code.
Sinon, voici le fichier tout fait si tu n'as pas le courage de le refaire ici
A +
Je me suis permis d'en "construire" un exemple pour moi. Je pense que tu auras là toutes tes réponses...
Je te file le lien ci dessus, étudie ce code attentivement, il est très bien fait. Si tu veux perfectionner ce que tu es en train de faire, analyse la méthode utilisée dans ce code.
Sinon, voici le fichier tout fait si tu n'as pas le courage de le refaire ici
A +
Merci pour ta réponse mais je rencontre toujours le même problème. J'avais déja essayé :
.Cells.NumberFormat = "@"
J'obtiens bien des champs texte mais les zéros à gauche des valeurs ne sont pas conservés. En fait je recherche quelque chose du genre :
.Cells.NumberFormat = "00000"
mais avec une taille de champ non fixe car je peux avoir des valeurs de longueurs différentes avec des zéros au début.
.Cells.NumberFormat = "@"
J'obtiens bien des champs texte mais les zéros à gauche des valeurs ne sont pas conservés. En fait je recherche quelque chose du genre :
.Cells.NumberFormat = "00000"
mais avec une taille de champ non fixe car je peux avoir des valeurs de longueurs différentes avec des zéros au début.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 nov. 2009 à 13:59
19 nov. 2009 à 13:59
Je vais peut être dire une bêtise car je ne sais pas comment il est mais ne faudrait-il pas formater dans le fichier csv?
Voici 3 lignes de mon csv :
1,0000001481,9542 ,9542 , 20,16/09/2009,15:53:00, 20.94, 20.94, 1,04,0000510922,0000000320, ,0000000000,0000000000,0000000000,0000000000, ,4457,00000001.0000
1,0000001482,0441 ,0441 , 21,16/09/2009,16:00:00, 42.84, 42.84, 1,04,0000255603,0067772150, ,0000000000,0000000000,0000000000,0000000000, ,4457,00000001.0000
1,0000001483,9703 ,9703 , 2,16/09/2009,16:40:00, 4.30, 4.30, 1,04,0000605448,0067772150, ,0000000000,0000000000,0000000000,0000000000, ,4457,00000001.0000
Par exemple le champ 0441 est toujours transformé en 441. Ce que je voudrais est conserver les champs tels quels
1,0000001481,9542 ,9542 , 20,16/09/2009,15:53:00, 20.94, 20.94, 1,04,0000510922,0000000320, ,0000000000,0000000000,0000000000,0000000000, ,4457,00000001.0000
1,0000001482,0441 ,0441 , 21,16/09/2009,16:00:00, 42.84, 42.84, 1,04,0000255603,0067772150, ,0000000000,0000000000,0000000000,0000000000, ,4457,00000001.0000
1,0000001483,9703 ,9703 , 2,16/09/2009,16:40:00, 4.30, 4.30, 1,04,0000605448,0067772150, ,0000000000,0000000000,0000000000,0000000000, ,4457,00000001.0000
Par exemple le champ 0441 est toujours transformé en 441. Ce que je voudrais est conserver les champs tels quels
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 nov. 2009 à 14:18
19 nov. 2009 à 14:18
Peux tu joindre ton fichier csv (efface des données et ne laisse que ces 3 lignes si tu le souhaites) en utilisant https://www.cjoint.com/ par exemple
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 nov. 2009 à 14:42
19 nov. 2009 à 14:42
J'ai trouvé une piste, je ne sais pas si cela va t'aider... J'ai ouvert ton fichier csv, ajouté une " devant la deuxième ligne, comme ceci :
"1,0000001482,0441 ,0441 , 21,16/09/2009,16:00:00, 42.84, 42.84, 1,04,0000255603,0067772150, ,0000000000,0000000000,0000000000,0000000000, ,4457,00000001.0000
Après enregistrement et fermeture, j'ai lancé la conversion par la macro de Lermitte222 et j'ai obtenu le résultat escompté.
"1,0000001482,0441 ,0441 , 21,16/09/2009,16:00:00, 42.84, 42.84, 1,04,0000255603,0067772150, ,0000000000,0000000000,0000000000,0000000000, ,4457,00000001.0000
Après enregistrement et fermeture, j'ai lancé la conversion par la macro de Lermitte222 et j'ai obtenu le résultat escompté.