VisualBoinet
Messages postés64Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention14 juin 2007
-
28 déc. 2006 à 09:55
VisualBoinet
Messages postés64Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention14 juin 2007
-
29 déc. 2006 à 09:31
Salut
J'ai un petit probleme pour l'ouverture d'un csv dans excel.
J'ai dans un fichier csv des champs contenant une chaine de caractere comme suit : "00001"
Le problème c'est que Excel me met "1" lui.
Je fait donc un traitement pour mettre les colonnes en chaine de caractere. Le probleme c'est que mon workbook n'existe pas
et que je n'arrive pas a creer le tout avec des objets Excel... (et si je fait le traitement apres seuls les dates seront modifiés bien evidemment, les "0000" ne seront deja plus la et seul le "1" sera convertit.)
VisualBoinet
Messages postés64Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention14 juin 2007 29 déc. 2006 à 09:31
héhé ^^
J'y est meme pas pensé...
Le probleme serait qu'apres dans vb quand je recupere le champ de la cellule il y orait un "'" (je sais le traitement pour l'enlever n'est pas bien dur :p)
J'ai fini par trouvé ceci :
Dans mon appel de copie du fichier csv il suffit de rajouter fieldInfo et un tableau comme suit :
avec comme on peut le voir ci dessous :
en premier parametre du array le numéro de colonne qui vous interesse et en second le type de format qu'elle doit avoir.
VisualBoinet
Messages postés64Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention14 juin 2007 28 déc. 2006 à 11:30
En fait le problème c'est que des fois ca peut etre "000" le format...
C'est pour ca qu'il faut que je puisse me mettre en format texte (@)
En fait ce que je voudrai faire c'est :
creer un fichier excel avec un workbook et une feuille.
Faire mon traitement de transtypage en @
Mettre le fichier csv dans cette feuille
mais j'arrive pas a men sortir avec les Excel.workbooks et Excel.sheets
j'ai fait un truc du genre (je l'ai effacé donc je ne m'en rapel plus trop, j sais juste que ca nbe fonctionne pas) :
dim XLApp as new excel.application
dim wbk as excel.workbooks
dim sht as excel.sheets
set wbk = XLApp.workbooks.add
set sht = XLApp.activesheet
For Cpt = 0 To nbre_colonne
Select Case tabType(Cpt)
Case 4, 6, 7, 133
wbk.Sheets(1).Columns(lngCpt + 1).NumberFormat = "DD/MM/YYYY"
Case 135
wbk.Sheets(1).Columns(lngCpt + 1).NumberFormat = "DD/MM/YYYY hh:mm:ss"
Case 202
wbk.Sheets(1).Columns(lngCpt + 1).NumberFormat = "@"
End Select
Next
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 28 déc. 2006 à 12:02
Lorsque le format est "000", est-ce que c'est pour une colonne complète ou est-ce que c'est aléatoire dans une même colonne ?
Si le format est fixe pour une colonne donnée, tu pourrais vérifier le nombre de caractères d'une cellule et ajuster le format "000..." selon le Len(Cellule.text)
VisualBoinet
Messages postés64Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention14 juin 2007 28 déc. 2006 à 14:20
C'est par colonne que ca se passe. Le problème c'est que mon tableau tabType me donne le type de la colonne. Je sais donc si ca doit etre du caractere ou si ca dopit etre une date ou du numerique ....
Et lorsque c'est une chaine de caractere je peut avoir "0001" ou "salut"... c'est pour cela que je n'est pas d'autre choix que de mettre en texte comme type excel avant d'insere mon fichier csv...
VisualBoinet
Messages postés64Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention14 juin 2007 28 déc. 2006 à 15:32
En gros je voudrais faire ceci :
Creer un fichier excel avec workbook. Formatter la premiere colonne en texte pour que si je marque "0001" il laisse "0001" et non "1". Mettre dans cette feuille que je vien de formatter un fichier csv.
C'est juste ca en fait que je ne sais pas faire : creer un fichier et une fois qu'il existe mettre le fichier csv dans celui-ci...