[VBA ACCESS EXCEL] transfert de données

Bonjour,
Je suis dans mon code access et je souhaiterai en VBA impoorter les données de la feuille2 de mon classeur excel (classeur1) vers une nouvelle table access.

Je ne sais pas comment faire pour importer juste une feuille ...

Merci d'avance de m'aider

9 réponses

  1. Contributeur
    Non, tu dois crer une requete en mode "creation de table" , mettre ce nom de table temporaire crée dans le transfert et supprimer la table temporaire.
    1. Bonjour,
      je suis face à un dilème...j'ai une procédure:
      "TransferSpreadsheet"
      ma version de Access est 2000 et ma version de excel est 2010 (dans laquelle je veux transférer la table.)
      est-ce possible? ou est-ce que ma version de excel est trop récente?

      DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Tab_ListeNoActiExcel", _
      "S:\ESTIMATION\R-095\Rapport870.xlsx", True, "Feuil2!A1:A200"

      lorsque je regarde les choix que m'offre la commande, le dernier type de fichier est acSpreadsheetTypeExcel9.... je supose que ca correspond a excel 2003?
      qu'est-ce que ca serait pour Excel 2010?

      merci de votre aide!
      1. Contributeur
        oui, j ai resolu mon soucis, ....

        quel est ton probleme maintenant?? si c est de balancer le resultat d une requete ou une table entiere dans un fichier excel (nom au choix) dans une feuille nommée, j ais la solution :p

        DoCmd.TransferSpreadsheet acExport, 8, "Export Global", Chemin_base & "Envoie\FT.xls", True, "FFT"

        DoCmd.TransferSpreadsheet acExport: exporter vers xl
        8: type excel 8 ou 10
        Export Global : nom de la requete ou table à exporter
        Chemin_base & "Envoie\FT.xls" : chemin base est le chemin de ma base de donnee, mais ca peut etre n importe quel chemin

        true : pour avoir le nom des champs
        FFT : nom de la feuille dans le fichier xl

        voili, j espere que ca a réponpdu a ta question :p

        sinon, hesite pas ;)
        1. Bonjour,
          j'aimerai savoir si il est possible d'insérer une requette dans:
          DoCmd.TransferSpreadsheet acExport, 8, "Export Global", Chemin_base & "Envoie\FT.xls", True, "FFT"
          pour pouvoir sélectionner les colonnes de la base que l'on souhaite exporter.
          J'ai test ça:
          DoCmd.TransferSpreadsheet acExport, 8, "SELECT maColonne FROM maTable", Chemin_base & "Envoie\FT.xls", True, "FFT"
          ça ne marche pas, il ne reconnait pas "SELECT maColonne FROM maTable".

          merci.
      2. Contributeur
        DoCmd.TransferSpreadsheet acImport, 8, "<Nom de la table>", "C:\<Chemin explicite>\<fichier Excel>.xls", True, "feuil2!"

        Et la meme chose mais dans l autre sens??

        Je m explique : je voudrais exporter une requete access vers mon fichier xls en choisissant le nom de la feuille destination...
        Avec une macro copier vers, ca me nomme la feuille destination au meme nom que ma requete, et si dans le fichier de copie je met : "c:\monxl.xls:nomfeuille" ca me cré bien un fichier xls nommé monxl avec une feuille nomfeuille a l interieur, mais aucune données y est inscrite :(

        merci:)
        1. bonjour
          as tu résolu le problème de transfert d'access vers excel car j'ai le même problème
          d'avance merci
      3. Bonsoir,
        Le plus simple consiste à recourir à la procédure manuelle d'exportation de ACCESS vers EXCEL

        Dans votre base ACCESS choisir la table à exporter
        Faire un clic droit sur le nom de table concerné
        Dans la liste de choix qui apparaît choisir EXPORTER
        Dans la fenêtre qui s'affiche choisir le type de fichier retenu (version EXCEL 97; 2000; etc..)
        Indiquer le lieu (répertoire) de destination

        Cordialement
        La science ne fait que trouver ce qui existe depuis toujours.
        REEVES Robert.
        1. Bonjour,

          j'ai rentré des données dans une base access et je voudrais convertir ces données sur un page excel. Je n'ai pas la marche à suivre.

          merci de m'aider.

          bientôt.
          1. Bonsoir,

            De mon côté, je ne constate aucun incident. La feuille désignée s'extrait normalement, que le fichier Excel soit ouvert ou non.

            Je vous suggère d'essayer un nouvel import avec un fichier Excel différent. Dans le passé, j'ai constaté que, dans certains cas, le formatage (par ex. centrage)du nom des titres de colonnes provoque des incidents d'imporation.

            Désolé de ne pouvoir mieux vous aider
            La science ne fait que trouver ce qui existe depuis toujours.
            Hubert REEVES.
            1. Merci beaucoup ca marche en effet.
              Seulement j'ai un petit problème :
              Compte tenu du programme que je développe, le fichier dans lequel je vais chercher ma feuille2 est ouvert à ce stade de ma macro et j'ai l'impression qu'il copie le classeur ou qu'il fait une lecture seule pour récupérer les données parce que a chaque fois que je ferme tout et que je vais réouvrir ce classeur excel j'ai pas mal de problèmes du type ce fichier est déja ouvert ou alors le voir en lecture seule. je ne comprends vraiment rien pouvez vous m'aider ??

              Il faudrait qu'il prenne les données dans le classeur ouvert. J'ai essayé quelque chose du type
              DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=5, TableName:="whose", FileName:=xls.ActiveWorkbook.name ..... mais ca marche pas !!

              Merci d'avance
              1. Bonsoir,
                Je viens de procéder à un essai avec Access 2000 +Excel 2000
                Ça fonctionne bien chez moi ....

                Pour obtenir le résultat escompté, une seule ligne VBA suffit :

                DoCmd.TransferSpreadsheet acImport, 8, "<Nom de la table>", "C:\<Chemin explicite>\<fichier Excel>.xls", True, "feuil2!"

                La science ne fait que trouver ce qui existe depuis toujours !
                Hubert REEVES

                Discussions similaires

                Quick Access service

                4 réponses