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 :

Importer de Excel vers Access


Sujet :

VBA Access

  1. #1
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut Importer de Excel vers Access
    Bonjour,

    Je voudrais importer dans Access une feuille d'un classeur Excel. J'ai trouvé ce code mais il ne fonctionne pas très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "test", cheminExcel, True, "A:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q"
    test : c'est le nom de la table dans laquelle je veux importer les donner, cheminExcel est le chemin du répertoire ou se situe le fichier Excel et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q
    c'est les colonnes que je veux importer.

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    une plage valide serait plutôt du genre "A:Q"

  3. #3
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    j'ai testé avec ca et ca ne marchait pas non plus

    ca m'affiche :
    Le champ F1 n'existe pas dans la table de destination "test"

    comment dois je faire??

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu as deux solutions
    nommées ta plage sous excel
    par exemple export==Feuil1!$B:$B;Feuil1!$D:$D;Feuil1!$F:$F;Feuil1!$H:$H
    ou plus facile prendre toute ta base excel comme une table liée et effectuer une requête ajout (création) à partir de celle ci

  5. #5
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Salut,

    Avec ton code les données de la 1ere ligne de ta feuille de calcul vont donner le nom des champs de ta table "test".
    N'aurais tu pas modifié entretemps les données de ta feuille Excel?

  6. #6
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    j'ai pas tres bien compris ce que tu voulais dire

    si je veux renommer la feuille du classeur Excel, comment dois je la renommer? je n'ai pas bien compris ce que tu entendais par
    par exemple export==Feuil1!$B:$B;Feuil1!$D:$D;Feuil1!$F:$F;Feuil1!$H:$H
    sinon pour la 2eme solution, tu veux dire que je prend ma feuille et que pour chaque ligne du tableau, je fais une requête insert dans ma table Access? si c'est le cas, comment puis je savoir le nombre de ligne à insérer??

    merci

  7. #7
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par ft035580
    Salut,

    Avec ton code les données de la 1ere ligne de ta feuille de calcul vont donner le nom des champs de ta table "test".
    N'aurais tu pas modifié entretemps les données de ta feuille Excel?
    je n'ai pas modifié ma feuille Excel entre temps. les noms de la premiere ligne de ma feuille Excel sont les memes nom que ceux de ma table. il y a le meme nombre de colonnes avec les meme noms donc je ne comprends pas pourquoi ca ne marche pas.

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    i s'agit de donner un nom à la zone à importer
    les noms sous excel peuvent désigner des ranges non contigus comme dans l'exemple
    =Feuil1!$B$5:$B$11;Feuil1!$D$6:$D$11
    qui se lit feuille 1 deb5à b11 et de d6 à d11
    pour cela sélectionne ta zone à importer sous excel puis insertion nom

  9. #9
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    et dans mon code ca donnerais quoi? car j'ai pas encore tout compris comment ca fonctionne, moi j'ai besoin des colonnes A à Q et je ne peux pas mettre une plage genre A1 à Q20 car je ne connais pas le nombre de ligne, juste les colonnes

    enfin tu vois ce que je veux dire?

  10. #10
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par random
    ou plus facile prendre toute ta base excel comme une table liée et effectuer une requête ajout (création) à partir de celle ci
    j'ai essayais la deuxième méthode qui marche très bien mais le problème est que quand dans un champ d'Excel il y a une cote ' et ben ca pose problème dans la requête sql. comment fait on pour remplacer une cote par une double cote '' ?
    merci

  11. #11
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    j'ai trouvé comment remplacer un caractère par un autre
    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Replace([expression],[signeàchanger],[signeremplacement])

  12. #12
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    pour ceux que ca interressement j'ai réussi finalement à importer ma feuille Excel dans une table Access
    Voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "matable", cheminExcel, True, "mafeuille!"
    bonne continuation

  13. #13
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    encore une petite question :

    est ce possible de n'importer que les cellules non vides contenues dans la feuille Excel vers Access?

    car en fait les cellules vides de ma feuille Excel ne doivent pas écraser les données contenues dans ma table Access.

    merci de votre aide

  14. #14
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour emeraudes!

    j'ai essayé d'importer un fichier excel avec ton code mais ça ne marche pas!

    le message suivant s'affiche :"Erreur de syntaxe"

    peux tu STP m'éclairer sur :
    c'est koi au juste: "cheminExcel"?

    de ma part j'ai mis le chemin ou est sauvegardé ma feuille excel,
    dans un 1er temps, ça n'a rien donné, puis le chemin ou est enregistré l'office, ça ne marche pas non plus

    et tu importe le fichier dans une table access contenant un seul champ?
    le code ou la-tu écris? et comment tu l'appel?

    Merci de m'éclairer.

  15. #15
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour emeraudes!

    j'ai essayé d'importer un fichier excel avec ton code mais ça ne marche pas!

    le message suivant s'affiche :"Erreur de syntaxe"

    peux tu STP m'éclairer sur :
    c'est koi au juste: "cheminExcel"?

    de ma part j'ai mis le chemin ou est sauvegardé ma feuille excel,
    dans un 1er temps, ça n'a rien donné, puis le chemin ou est enregistré l'office, ça ne marche pas non plus

    et tu importe le fichier dans une table access contenant un seul champ?
    le code ou la-tu écris? et comment tu l'appel?

    Merci de m'éclairer.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 107
    Points : 53
    Points
    53
    Par défaut
    Salut à tous,
    Dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     acSpreadsheetTypeExcel9
    tu as oublié le 7 de 97........
    A+

  17. #17
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par hindou
    Bonjour emeraudes!

    j'ai essayé d'importer un fichier excel avec ton code mais ça ne marche pas!

    le message suivant s'affiche :"Erreur de syntaxe"

    peux tu STP m'éclairer sur :
    c'est koi au juste: "cheminExcel"?

    de ma part j'ai mis le chemin ou est sauvegardé ma feuille excel,
    dans un 1er temps, ça n'a rien donné, puis le chemin ou est enregistré l'office, ça ne marche pas non plus

    et tu importe le fichier dans une table access contenant un seul champ?
    le code ou la-tu écris? et comment tu l'appel?

    Merci de m'éclairer.
    bonjour hindou

    cheminExcel, c'est le chemin où se situe ta feuille Excel. ca ne marche pas peut etre parce que tu n'as pas mis des " " (exemple : "C:\mes documents\feuille1.xls")

    ensuite j'importe ma feuille excel dans une table contenant le meme nombre de colonnes que celle contenue dans ma feuille Excel, c'est a dire si j'ai un tableau à 5 colonnes dans Excel, ma table Access contiendra 5 champs. Il faut que les noms des champs de ta table Access ai les meme noms que les colonnes de la feuille Excel sinon ca en marche pas.

    le code je l'ai ecrit sur le clique d'un bouton dans un formulaire Access.
    tu crée un formulaire Access avec un bouton. Puis tu fais clique droit sur le bouton >> Créé code évènement... et là ca t'ouvre une fenetre de code ou tu écrit le code de l'importation

    J'espere que tout ca t'aura un peux éclaici et que tu trouvera la solution a ton problème.

    Bonne continuation

Discussions similaires

  1. Importation fichier excel vers access
    Par mbokmahop dans le forum VBA Access
    Réponses: 17
    Dernier message: 05/08/2018, 16h33
  2. importer planning excell vers access
    Par hugodu28 dans le forum Modélisation
    Réponses: 6
    Dernier message: 29/11/2010, 15h59
  3. Importations données Excel vers Access
    Par olivier777 dans le forum IHM
    Réponses: 12
    Dernier message: 26/05/2009, 17h51
  4. Réponses: 5
    Dernier message: 11/07/2006, 20h57
  5. Problème champ après import d'excel vers access
    Par David M dans le forum Access
    Réponses: 6
    Dernier message: 16/10/2005, 11h53

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