Ouvrir fichier CSV en présisant le type des colonnes

Syphou Messages postés 52 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 6 juin 2011 - 8 mai 2007 à 16:16
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 10 août 2009 à 14:49
Bonjour,
Je cree un fichier CSV par programmation et une foi crée j'aimerai louvrir avec Excel mais dans certaine colonne j'ai des identifiants du genre 00000654. Exel pense que c'est un chiffre et me met donc 654 se qui fausse tout mon truc evidemment.

Comme specifier le type des colonnes?

De meme que tout mes accent, il met des caractères bizarre pcq il ne les connait pas.

Le moyen evidemment cest ouvrir excel (a la main), faire fichier / ouvrir fichier csv, et la on peut specifier manuellement tous les types de differentes colonnes ainsi que l'encodage (UTF8, ANSI)mais il faut que sa se fasse par programmation... Quelqu'un sait ?

Merci

J'ouvre mon fichier comme ceci :

Dim appExcel
As Excel.Application
'Application Excel

Dim wbExcel
As Excel.Workbook
'Classeur Excel

Dim wsExcel
As Excel.Worksheet
'Feuille Excel

'Ouverture de l'applicationappExcel = CreateObject("Excel.Application")

'Ouverture d'un fichier ExcelwbExcel = appExcel.Workbooks.Open(MonFichier.csv)

'wsExcel correspond à la première feuille du fichierwsExcel = wbExcel.Worksheets(1)

appExcel.ActiveSheet.UsedRange.Select()

appExcel.Selection.Columns.AutoFit()

'Affichage de Excel
appExcel.Visible =

True

3 réponses

cs_lapix Messages postés 34 Date d'inscription dimanche 11 septembre 2005 Statut Membre Dernière intervention 14 juin 2023 1
22 mai 2007 à 13:11
salut !

Et si tu ouvre ton fichier dans XL en enregistrant une macro, tu obtiendrais une macro complete avec tous les parametres non ?

Ca te permettrais une commande 'open' plus complete ?
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 août 2009 à 14:33
Salut
Je sait que le topic date un peut, mais je cherche des précisions sur les types de données en CSV ce qui m'à amené ici.
Pour évité ce genre de problèmes le plus simple (et le mieux je pense) est de crée un fichier schema.ini (dans le même dossier que ton CSV) et de typer les colonnes avec.
Rubrique d'aide MSDN

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 août 2009 à 14:49
Heeee oups
Rubrique d'aide MSDN
En plus il semblerais que sa ne fonctionne pas si bien avec excel , mais aucun soucis avec des connexions type BdD. Exemple :
Dim testCo As New ADODB.Connection
Dim testDat As New ADODB.Recordset
'OleDb <- Ce que j'utilise
testCo.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Dossier contenant le CSV (les chemins avec espaces sont accepté)\;Extended Properties=""text;HDR=Yes;FMT=Delimited"";"

'ODBC (en connexion direct les chemins avec espaces ne sont pas accepté
'Crée alors un fichier DSN (fichier pour ne pas pourrir la base de registre) que tu peut stocké dans un dossier avec espaces et dans le quel tu peut mettre un chemin vers le CSV avec espaces 
'testCo.ConnectionString = "FILEDSN=Chemin au DSN" 

'Ou encore en ODBC direct (/!\ au espaces)
'testCo.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=""Dossier contenant le CSV (les chemins avec espaces ne sont pas accepté !!!)"";Extensions=csv;"

testCo.Open
'Les deux dernier paramètres en option ou à modifier selon les besoins ;)
testDat.Open "SELECT * FROM " & NomFichier, testCo, adOpenStatic, adLockOptimistic

'[...] <- Utilisation du Recordset

testCo.Close
testDat.Close
set testCo = Nothing
set testDat = nothing

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Rejoignez-nous