Bonjour,
j'ai une macro qui me permet d'aller récupérer l'ensemble des données se trouvant dans un classeur fermé de type 'csv'.
Lorsque le fichier est enregistré sur mon PC personnel, cela fonctionne correctement.
Par contre, lorsque j'essaie de faire de même mais avec le fichier 'csv' stocké sur un serveur au boulot, seule la première colonne est importée.
J'avais déjà rencontré ce problème auparavant et il avait été résolu sans que j'y fasse quoi que ce soit.
Est-ce un problème lié au réseau? Est-il possible de résoudre cela en jouant sur les paramètres ADO? Avez-vous un moyen de contournement ou une autre façon de faire à me proposer?
Pour information, quelque soit la taille du fichier 'csv', le problème reste le même.
Je vous joins le code plus bas et vous remercie d'avance pour votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
Sub ImportFichierCSV(RépertoireFichierAImporter, FichierAImporter, NomOngletImport)
 
    Dim Cn As ADODB.Connection
    Dim Repertoire As String
    Dim Fichier As String
    Dim texte_CON As String
    Dim texte_SQL As String
    Dim Rst As ADODB.Recordset
 
'    RépertoireFichierAImporter = "E:\Mes documents\Idrissa\Moulinette Prose\"
'    FichierAImporter = "Export_Plannings_SENP_2009_09.csv"
 
    Set Cn = CreateObject("ADODB.Connection")
 
    '--- Connection ---
    texte_CON = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RépertoireFichierAImporter & ";" _
    & "Extended Properties=""text;HDR=NO;FMT=Delimited"";"
    Cn.Open texte_CON
    '-----------------
 
    'Définit la requête.
    texte_SQL = "SELECT * FROM " & FichierAImporter
    Set Rst = New ADODB.Recordset
    'Rst.Open strsql, cn
    Set Rst = Cn.Execute(texte_SQL)
 
    'création de l'onglet où seront copiées les données
    Call AjoutNouvelOnglet(NomOngletImport)
 
    'Ecrit le résultat de la requête dans la cellule A1 de l'onglet créé ligne précédente
    Sheets(NomOngletImport).Select
    Range("A1").CopyFromRecordset Rst
 
    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing
 
End Sub