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

IHM Discussion :

Importation Fichier.csv MS Excel vers Access en vba [AC-2010]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut Importation Fichier.csv MS Excel vers Access en vba
    Bonsoir,

    Je me heurte péniblement à un problème discuté maintes fois sue ce site et ailleurs et je n'y arrive pas !

    Je voudrais importer un fichier .csv Excel vers une table Access.

    J'utilise cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acImport ....
    ou bien :

    mais le résultat ne plaît pas.

    Par contre j'y arrive trés bien depuis un fichier an format .xls

    Donc ma question : comment en vba executer un "Enregistrer sous ..." de mon Fichier.csv en Fichier.xls ?

    J'ai trouver ici ou là des codes qui renoment un fichier mais ça ne marche pas non plus.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Bonjour,

    Il est impossible de répondre à ton message.

    mais le résultat ne plaît pas.
    n'indique rien de tes problèmes avec les csv que tu n'as pas avec les xls.

    et

    Donc ma question : comment en vba executer un "Enregistrer sous ..." de mon Fichier.csv en Fichier.xls ?
    C'est sous Excel que tu peux te poser la question. Ça n'existe pas sous Access. Si tu n'as que des csv fournis, il te faudra résoudre le problème avec des csv.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    Merci mumen pour ta réponse.

    Ainsi je cherche donc àn importer mes fichiers vers Access en csv mais je bloque.

    J'essaie avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferText acImport, FormatImportCL, "MaTable", "F:\Mes documents\Elevage\Contrôle laitier\c1.csv", True
    Le résultat :mes données ne sont plus rangées champ par champ mais sont regroupées les unes aprés les autres séparées tout de même par des " ; " et ce dans des colonnes que Access nomme F1/F2/F3/F4/F5/F6 !

    Je vous joins ma table via Word (je ne sais pas faire autrement) mieux vaut une image que de grandes explications.

    Pour info, mon fichier source est un Excel.csv


    Si vous aviez une petite idée pour m'aider ...

    D'avance merci.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Encore moi.

    Je cherche depuis des heures le pourquoi du comment et je me suis rendu compte que le changement de colonne s'effectue à chaque décimale.

    Par exemple dans la pièce jointe, la première ligne et le dernier nombre de la première colonne est : 26

    Or normalement ma donnée c'est : 26,2 puisque la décimale est partie dans la colonne F2.

    Et ainsi de suite pour 36,3 .....28,4 etc.

    Chose curieuse, lorsque j'opère l'importation manuellement avec l'assistant tout est nickel.

    Une petite idée ?

    Merci.

  5. #5
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Qu'est ce que tu as dans ta variable FormatImportCL ?

    Quand tu importes manuellement, tu peux enregistrer le format que tu as mis au point. C'est cela que tu passes dans ta variable FormatImportCL ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonjour mumen

    Qu'est ce que tu as dans ta variable FormatImportCL ?

    Quand tu importes manuellement, tu peux enregistrer le format que tu as mis au point. C'est cela que tu passes dans ta variable FormatImportCL ?
    Oui c'est exactement ça !

    Merci.

  7. #7
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Oui c'est exactement ça !
    Heu... c'est exactement ça la description de ton problème ? ou la solution à ton problème ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    J'ai, avant toute chose réalisé un import manuel avec l'assistant et pris soins d'enregistrer, via les spécifications d'import, mon format d'import sous le nom FormatImportCL.

    Et c'est cette variable que je rappelle dans mon code.

    Qu'est ce que j'ai dedans : en fait je "saute" deux champs qui ne me sont pas utiles. Sinon mon format de fichier est "Délimité"
    -----> séparateur de champ : " ; "
    -----> symbole décimal : " , "
    -----> délimiteur de texte : aucun
    -----> page code : europe occidentale (DOS)

    Ce même format en import manuel fonctionne trés bien (j'ai bien un champ par colonne et les bonnes valeurs dedans) mais pas par VBA.

    Partout où je suis allé cherché des infos sur ce site ou ailleurs, la syntaxe de ce code est la même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferText acImport, FormatImportCL, "MaTable", "F:\Mes documents\Elevage\Contrôle laitier\c1.csv", True
    Et à les lire, ça marche meis pas chez moi.

    Ce code nécessite t-il une référence VBA particulière ?
    Est-ce que ça vient de mon fichier source Excel.csv (même si l'import manuel fonctionne) ?



    Merci.

  9. #9
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferText acImport, FormatImportCL, "MaTable", "F:\Mes documents\Elevage\Contrôle laitier\c1.csv", True
    Essaye comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferText acImport, "FormatImportCL", "MaTable", "F:\Mes documents\Elevage\Contrôle laitier\c1.csv", True

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Hé oui ...... !!!

    Ca marche !!!

    Merci pour ta patience et ..... pour la solution.

    Bonne soirée.

  11. #11
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Un petit conseil t'aurait évité cette problématique.

    Dans les options de VBA, coche "Déclaration des variables obligatoires"

    et pour les modules déjà crées, ajoute au tout début, juste après la ligne Option Compare Database, la ligne :

    Ceci t'aurais indiqué en erreur de compilation que la variable FormatImportCL n'existait pas. Comme Option Explicit n'était pas déclaré dans ton module, VBA à cru que FormatImportCL était une variable légitime, mais qui était vide. Donc ton TransfertText s'effectuait sans le format prédéfini. A ce détail près, tu avais tout bon.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Effectivement je viens de faire ces modifications :


    Un petit conseil t'aurait évité cette problématique.

    Dans les options de VBA, coche "Déclaration des variables obligatoires"

    et pour les modules déjà crées, ajoute au tout début, juste après la ligne Option Compare Database, la ligne :


    et effectivement j'ai ceci :

    Ceci t'aurais indiqué en erreur de compilation que la variable FormatImportCL n'existait pas.
    Merci pour ce tuyau. C'est effectivement plus facile de trouver des solutions quand on sait où est le problème .... Je prends note !!

    Le développement Access est un métier .... et ce n'est pas le mien ...

    Merci pour ces explications. Et de me les avoir données instinctivement.

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut import de fichier csv trié
    Bonjour,
    je fais des imports de fichiers .csv avec la commande transfertext mais le resultat de l'import en table ne suit pas toujours l'ordre dans lequel sont les données dans le fichier source. Y a-t-il une astuce pour que l'ordre des lignes du fichier source soit TOUJOURS respecté en résultat ?
    Merci d'avance pour votre aide
    Bernard

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. importer des données d'excel vers access
    Par nicolille dans le forum VBA Access
    Réponses: 8
    Dernier message: 15/02/2009, 18h41
  2. Import de données de Excel vers Access
    Par kdestine dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/09/2007, 11h48
  3. Importation de données d'Excel vers Access
    Par jolemoine dans le forum Access
    Réponses: 9
    Dernier message: 13/07/2007, 14h56
  4. importation fichiers multiples depuis excel vers excel
    Par zougna dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/11/2006, 17h04
  5. importer un commentaire de Excel vers access
    Par lionski dans le forum Access
    Réponses: 4
    Dernier message: 12/09/2006, 20h50

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