[VBA ACCESS EXCEL] transfert de données

Fermé
ben7777 Messages postés 30 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 1 août 2007 - 4 août 2006 à 14:22
 mc - 11 juil. 2012 à 20:17
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
A voir également:

9 réponses

jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
20 juin 2009 à 13:46
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.
6
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
3
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
18 févr. 2008 à 12:08
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:)
2
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
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
3 oct. 2008 à 21:24
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.
0
ben7777 Messages postés 30 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 1 août 2007 2
7 août 2006 à 14:21
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
0
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.
0
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.
0
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!
0