Rechercher : dans
Par :

[VBA ACCESS EXCEL] transfert de données

Dernière réponse le 20 jun 2009 à 13:46:41 ben7777, le 4 aoû 2006 à 14:22:17 
 Signaler ce message aux modérateurs

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

1

Jacques, le 5 aoû 2006 à 21:29:21

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

Répondre à Jacques

2

ben7777, le 7 aoû 2006 à 14:21:09

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

Répondre à ben7777

3

Jacques, le 7 aoû 2006 à 15:48:04

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.

Répondre à Jacques

4

babeth, le 13 fév 2008 à 15:54:16

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.

Répondre à babeth

5

Jacques, le 13 fév 2008 à 16:29:51

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.

Répondre à Jacques

6

jjsteing, le 18 fév 2008 à 12:08:20

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:)

Répondre à jjsteing

7

mapa44, le 23 sep 2008 à 17:15:45

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

Répondre à mapa44

8

jjsteing, le 3 oct 2008 à 21:24:28

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 ;)

Répondre à jjsteing

9

baka, le 28 nov 2008 à 11:45:02

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.

Répondre à baka

10

 jjsteing, le 20 jun 2009 à 13:46:41
  • +1

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.

Répondre à jjsteing