IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Résultat lecture fichier csv fermé non correct


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Par défaut Résultat lecture fichier csv fermé non correct
    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

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, une autre façon d'y parvenir, même si je ne sais pas comment cela peut se comporter en réseau. A adapter à ton contexte.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Par défaut
    Salut Kiki,
    merci pour ton aide.
    J'ai adapté la fonction qui se trouve dans le lien que tu as joint et ça marche bien. L' "inconvénient" de cette méthode est que le fichier à importer est ouvert.
    Pour information, voici le code :
    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 FSO As Object
        Dim Fichier As String
        Dim Wkb As Workbook, sNomSh As String
        Dim sNomFichier As String
     
        Dim NbLigne As Long
        Dim NbColonne As Long
     
        sNomFichier = RépertoireFichierAImporter & FichierAImporter
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Fichier = FSO.GetFileName(sNomFichier)
     
        Application.DisplayAlerts = False
        Set Wkb = Application.Workbooks.Open(sNomFichier, Local:=True)
        Application.DisplayAlerts = True
     
        NbLigne = ActiveSheet.UsedRange.Rows.Count
        NbColonne = ActiveSheet.UsedRange.Columns.Count
     
        Range(Cells(1, 1), Cells(NbLigne, NbColonne)).Copy
     
        Workbooks("Moulinette Prose.xls").Activate
     
        'création de l'onglet où seront copiées les données
        Call AjoutNouvelOnglet(NomOngletImport)
     
        Worksheets(NomOngletImport).Paste
     
        'Astuce pour vider le presse-papier
        Cells(1, 1).Copy
     
        Wkb.Close False
        Set FSO = Nothing
     
    End Sub

Discussions similaires

  1. lecture fichier CSV
    Par kodshadow dans le forum Débuter
    Réponses: 6
    Dernier message: 22/12/2008, 16h42
  2. [MySQL] Lecture fichier CSV et enregistrement dans la base
    Par tifsa dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 26/09/2008, 12h49
  3. Lecture fichier .csv par colonne
    Par BRAUKRIS dans le forum Langage
    Réponses: 3
    Dernier message: 05/10/2007, 14h08
  4. Lecture fichier CSV
    Par Iphelias dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/06/2007, 21h58
  5. lecture fichier .csv
    Par wiss20000 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 06/06/2007, 20h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo