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

VBA Access Discussion :

Automatisation de l'import d'un fichier csv dans ma bdd


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut Automatisation de l'import d'un fichier csv dans ma bdd
    Bonjour,

    Je cherche à automatiser l'import de fichier csv dans ma base de donnée car je dois en traiter 600 par mois.

    Je souhaite mettre tous les fichiers à traiter dans un dossier qui sera définit pour subir l'automatisation.
    J'aimerai aussi pouvoir désigner quelle colonne de mon fichier csv va se mettre dans telle colonne de ma base.

    Est ce possible ?

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Hello,

    oui c'est possible, maintenant livre à toi de choisir le mode de fonctionnement de l'automatisation :

    - procédure VBA lancée manuellement
    - procédure VBA exécutée à l'ouverture de la base
    - procédure VBA lancée par tache planifiée
    - macro Access
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Hey bonjour et merci de vous interesser à mon problème,

    Moi je suis plutot intéressé pour le faire manuellement en cliquant sur un bouton, comme ça si j'ai des nouvelles commandes dans l'après-midi, je peux mettre à jour tout de suite ma base et voir si j'ai toutes les marchandises.

    Pouvez vous m'expliquer comment faire ?

    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    OK,

    pour importer un fichier cvs dans une base, on a des exemples de code très simples à appliquer disponibles dans la

    http://access.developpez.com/faq/?page=ManipDATA#import

    http://access.developpez.com/faq/?pa...l#ImpFichExcel

    Sinon, une petite recherche dans le forum en lui-même permet de trouver des problèmes similaires résolus

    http://www.developpez.net/forums/d57...csv-access-vb/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Je n'aurais pas posté sans avoir cherché et je sais comment faire une importation avec les même champs dans la table et le fichier excel.
    J'avais déjà lu vos liens et ce n'est pas ce que je veux faire

    Je voudrais pouvoir dire que dans la colonne designation de ma bdd , je mette la colonne B de mon fichier csv, la colonne E dans ma quantité.

    Tout mes fichiers ne seront pas les même donc après avoir vérifié ce que c'est(d'après son nom) j'applique l'importation avec les colonnes que je souhaite.

    Je ne sais pas si j'ai été claire concernant ce que je souhaite faire...

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    OK,

    tes fichiers csv ont-ils un en-tete avec le libellé des colonnes ou pas ?

    Si c'est le cas, l'import est standard, sinon il faudra:
    - détecter en amont ou en aval de l'import du fichier csv l'ordre des champs
    - insérer le cas échéant par une requete/un code VBA les données dans ta table cible
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    oui mes fichiers csv ont un entete avec des noms de colonne mais ce ne sont pas les même que dans ma bdd. Et aussi je n'importe pas toute les colonnes,c'est pour cela que je souhaitai définir exactement quelle colonne va dans quel champs

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    ben voir le point 2 de ma précédente réponse


    Et non, je ne te donnerai pas la solution, il faut chercher un peu
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Donc j'arrive à faire exactement ce que je souhaite en définissant les colonnes de mon fichier qui vont dans le champs de mon choix.

    Sauf que j'y arrive avec un xls et non un csv!lol

    Donc comment puis je convertir un xls en csv ?

    J'ai essayé des tonnes de code mais rien ne marche.
    Je vais faire un test pour vérifier l'extension de mes fichiers et donc si c'est un csv lancer la conversion.


    Si vous pouviez m'aider

    Merci

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Toujours depuis la , un code tout fait pour importer un csv dans Access :
    http://excel.developpez.com/faq/inde...sfertCsvAccess
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  11. #11
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Oui mais là je peux pas faire ce que je faisais avec mes xls où je choisissais les colonnes qui allaient dans tel champs.
    Là on fait le transfert directement du csv

    Je prefererai convertir mes csv en xls...

  12. #12
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    csv vers xls ou xls vers csv, il faut se décider hein
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  13. #13
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Non c'est bien csv à convertir en xls , je me suis trompé au dessus

  14. #14
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Si c'est csv en Excel, il suffit d'ouvrir le fichier en VBA et de le SAveAs avec le format Excel souhaité
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Ben justement j'ai utilisé SaveAs et voici mon erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Erreur d'execution '1004':
    La méthode 'SaveAs' de l'objet '_Workbook' a echoué
    Mon code est celui_ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ChDir "C:\Users\Moi\Desktop\1\"
    Workbooks.Open FileName:="C:\Users\Moi\Desktop\1\Sans1.csv"
    ActiveWorkbook.SaveAs FileName:="C:\Users\Moi\Desktop\1\Sans1.xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

  16. #16
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Voici un exemple qui fonctionne, il ne te reste plus qu'à l'adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub piou()
    Dim tmpwbk As Excel.Workbook
    Set tmpwbk = Workbooks.Open("C:\temp\test.csv")
    tmpwbk.SaveAs "C:\temp\test.xls", xlNormal
    tmpwbk.Close
    End Sub
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  17. #17
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Merci pour votre code mais j'ai toujours la même erreur qui apparait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Erreur d'execution '1004':
    La méthode 'SaveAs' de l'objet '_Workbook' a echoué

  18. #18
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Puis-je voir le code qui est utilisé ici stp ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  19. #19
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Dim tmpwbk As Excel.Workbook
    Set tmpwbk = Workbooks.Open("C:\Users\Moi\Desktop\1\BL4294.csv")
    tmpwbk.SaveAs "C:\Users\Moi\Desktop\1\BL4294.xls", xlNormal
    tmpwbk.Close

  20. #20
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Bonjour ,

    J'ai enfin réussi à convertir mon fichier csv en xls

    Cependant tout se met dans la colonne A
    Comment puis je faire pour delimité les colonnes avec les ";" lors de la conversion ?
    Merci d'avance

Discussions similaires

  1. [MySQL] Importation d'un fichier csv dans mysql
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/12/2009, 20h55
  2. Importation d'un fichier CSV dans Office
    Par Viggen0020 dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 05/08/2009, 15h48
  3. [XL-2003] Importer automatiquement un fichier CSV dans une feuille
    Par Mikayel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/06/2009, 10h35
  4. Import d'un fichier CSV dans access par VB
    Par Shoezman13 dans le forum VBA Access
    Réponses: 3
    Dernier message: 18/06/2008, 10h43
  5. Réponses: 1
    Dernier message: 29/04/2008, 12h54

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