ADODB.connection et .CSV

Bonjour le forum :)

Mon problème est simple (simple à expliquer pour être précis).

Je tente d'établir une connexion ADODB entre mon fichier et un fichier en .CSV qui se solde par une erreur (voir code erreur ci-dessous)

L'erreur se produit ici : (A noter que tout fonctionne bien si le fichier sélectionné est un classeur .XLSX)

With Cn
 .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & CLASSEUR_URL & ";Extended Properties=""Excel 12.0;HDR=NO;"""
 .Open
End With
image

Bonjour,

Sans conviction > car je ne peux pas tester ...

Remplacer 12 par 16 dans ton code ...

With Cn
 .ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=" & CLASSEUR_URL & ";Extended Properties=""Excel 16.0;HDR=NO;"""
 .Open
End With

Puis > si tu as une erreur ISAM >

https://support.microsoft.com/fr-fr/help/3041386/could-not-find-installable-isam-error-when-you-refr...

ric

Bonjour le fil

Une solution qui date, mais on ne sait jamais

https://forum.excel-pratique.com/excel/ado-import-csv-t88695.html

@+

Bonjour

sinon solution simple que j'utilise... ouvrir csv enregistré sous un fichier xlsx temporaire, et faire la connexion sur ce fichier xlsx

Fred

ric Merci du retour et effectivement il me retourne bien l'erreur ISAM, mais impossible de trouver les étapes de résolution sur Microsoft.doc (je doit être aveugle Je trouve bien sur le ruban la zonne "donnée" mais je n'ai pas de bouton "Connexion")
BrunoM45 Merci à toi aussi, mais là c'est du chinois pour moi

image
fred2406 j'avais effectivement pensé à une solution de ce genre, à convertir tous les fichiers .CSV d'un dossier, mais je trouve ça "moche" ^^

Re,

Je pense à ça, avant d'aller plus loin !

Tu veux ouvrir un fichier CSV en parcourant les feuilles

    Set oCat.ActiveConnection = Conn
    For Each Feuille In oCat.Tables
      Resultat = Resultat & Feuille.Name & vbCrLf
    Next Feuille

Or un fichier CSV ne peut contenir qu'une feuille

Quel est le résultat souhaité exactement !?

@+

Bonjour à tous,

Si je peux me permettre, voici le provider que j'utilise pour des Csv:

    Set Cnx = CreateObject("ADODB.Connection")
    With Cnx
        .Provider = "MSDASQL"
        .ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
            "DBQ=" & Rep & ";Extensions=asc,csv,tab,txt;"
        .Open
    End With

Et voici un exemple (fonctionnel sur mon Pc) d'utilisation

Pierre

58import-csv.zip (20.56 Ko)

Bonjour Pierre

Ton fichier fait une erreur sur mon office2019 :

image

Fred

Et bien, je ne savait pas qu'un CSV ne pouvait avoir qu'une feuille !

Mon but est "simple".

J'ai un dossier dans lequel se trouve un ensemble de fichier .CSV, Tous les fichiers .CSV ont sur leur feuille une base que je souhaite importer dans mon classeur.

La première ligne c'est l'entete, les autres lignes les datas.

le délimiteur est ","

pierrep56 J'ai utilisé ton code, j'ai l'erreur suivante :
Sub EXt()
    Dim CLASSEURS()
    Dim C As Long
    Dim CLASSEUR_URL As String
    Dim Cnx As ADODB.Connection

    Set Cnx = CreateObject("ADODB.Connection")
    CLASSEURS = Application.GetOpenFilename("Excel, *.CSV;*.CSV?", , "Exportation", , True)
    For C = LBound(CLASSEURS) To UBound(CLASSEURS)
        CLASSEUR_URL = CLASSEURS(C)
        With Cnx
            .Provider = "MSDASQL"
            .ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
            "DBQ=" & CLASSEUR_URL & ";Extensions=asc,csv,tab,txt;"
            .Open
        End With
        Cnx.Close
        Set Cnx = Nothing
    Next C
End Sub
image

@ Fred2406 :

Ecrit et fonctionnel sur Pc_64bits + Windows10_64bits + Office 2016_32bits

Testé et fonctionnel sur Pc_32bits + Windows10_32bits + Office 2007_32bits

Pour d'autres configurations, je ne sais pas.

@GGautier : le contenu du zip est à copier/coller dans un nouveau dossier de son PC

@GGautier : le contenu du zip est à copier/coller dans un nouveau dossier de son PC

CF mon message précédent ;)

Il faut que le dossier soit Zippé ?

pierrep56 Ton fichier est parfait !
Je vais maintenant essayer de comprendre tout ça :)
Merci à vous tous !

Re bonjour

@pierre

Je confirme sur 2 PCs...

Windows 10 Pro 64bits + Office 2019 64bits

image

et windows 10 pro 64bits + office 365 64bits

image

même erreur sur les deux PCs....

merci Microsoft....

Fred

Pas bon Office 64 bits ... toujours source d'incompatibilité ...

Préférer une installation en 32bits si possible (conseillé par Microsoft lui-même)

Bonjour le fil

@pierrep56 ce conseil Micosoft est vieux et n'est plus d'actualité sauf si l'on veut encore développer avec des anciens OCX (problème de sécurité)
En entreprise on ne te laisse pas le choix, surtout au point de vu sécurité

Bonsoir à tous..

Je confirme... installation pro.... pas le choix.... pour le office 2019..

Pour l'office 365 c'est lié à l'abonnement pro.. je ne sais même plus si javais le choix 32 ou 64... (peut-être)...

Bonne continuation

Fred

GGautier,

Je me permets de revenir sur ma question du post https://forum.excel-pratique.com/s/goto/909946

Rechercher des sujets similaires à "adodb connection csv"