|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : mai 2011 Messages : 15 ![]() |
Bonjour,
Après de nombreuses recherches infructueuses, je me tourne vers vous. Je vous explique mon problème : Depuis le code vba j'ouvre un fichier texte plus ou moins important de type : txt;txt;1-2-3;txt;1-2;txt 2-5;txt;txt;txt;3-4-5;txt;txt txt;txt,txt;txt;txt ... pour cela j'utilise un OpenText(), le problème c'est que excel me converti automatiquement les 1-2-3 en date... J'ai essayé tout un tas de truc comme les mettre entre " " ou ' ', en mettant tous les paramètres qui vont bien à l'opentext mais rien à faire toujours converti en date. J'ai essayé un range.numberformat qui n'a rien donné non plus car déjà interprété en date avant de prendre en compte le numberformat texte. Voilà, donc savez vous comment résoudre ça, svp? (j'espère que je n'ai rien loupé en faisant mais recherche) |
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Si c'est compatible avec ton code tu peux forcer la chose comme ça:
Code :
|
||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : mai 2011 Messages : 15 ![]() |
Merci pour ta réponse mais ça ne peu pas aller dans le sens ou ce 1-2-3 n'est pas une valeur fixe, ces chiffres correspondent à des numéros de réponses donc je peux avoir du 1-2; 2-3; 1-3; 1-2-5; 3-4-5; etc
De plus le format de mon fichier n'est pas fixe au niveau du nombre de lignes et selon les cas pas forcément le même nombre de colonnes d'un fichier à un autre :/ |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Ce n'était qu'un exemple pour te montrer qu'en changeant le format de la cellule avant de rentrer la valeur, ça ne fait pas la conversion automatique en date.
Donc pour ton cas, si tu sais qu'une colonne va contenir des donnés du type 1-2-3, formate-là en texte juste avant et ça fonctionnera: Code :
Columns(num_colonne).NumberFormat = "@" |
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonjour,
Il te faut forcer le format avant d'entrer la valeur : Code :
|
||
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Étudiant Inscription : mai 2011 Messages : 15 ![]() |
Ok merci pour vos réponses.
Et merci Hervé, mais le problème avec ta solution c'est que c'est du cellule par cellule et ça prendra beaucoup trop de temps :-/ Mais je vais voir ce que je peux faire, au pire il faudra que je prenne mon mal en patiente et voir pour bon gros fieldinfo dans le opentext Ya vraiment rien à faire au niveau du fichier texte pour que ça ne soit pas interprété et qui ne modifierai pas les données (qui seront réutilisées par la suite), donc pas d'espace ou de " ' " devant ma chaine 1-2-3 Ou même dans les paramètres d'excel une option à supprimer pour pas qu'il calcul ? |
|
|
00
|
|
|
#7 | |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
J'avais pas fait attention dans ton premier post que tu utilisais la fonction intégrée d'Excel pour importer tes données...du coup je vois 2 issues distinctes à ton problème:
1°/ Si tes fichiers ont un nombre fixe de colonnes, tu peux te servir de l'argument FieldInfo (à moins qu'il soit possible de définir un tableau fieldinfo dont la première dimension est plus grande que le nombre de colonnes de ton fichier, auquel cas il suffit de voir grand...). Cf. ce que dit l'aide à ce propos: Citation:
2°/ Tu codes l'import de tes données cellule par cellule en utilisant des objets TextStream pour lire ton fichier de données. C'est plus long à faire mais au moins tu pourras paramétrer le comportement comme tu l'entends. A mon avis, le plus adapté serait de faire un mélange des deux: lire la première ligne de ton fichier en utilisant un TextStream pour déterminer le type de chaque colonne, et définir derrière ton tableau de FieldInfo en forçant les colonnes du style 1-2-3 au format 'xlTextFormat'. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com