Export d'Access vers Excel

loraihalle Messages postés 4 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 4 mars 2010 - 4 mars 2010 à 10:59
loraihalle Messages postés 4 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 4 mars 2010 - 4 mars 2010 à 13:54
Bonjour tout le monde,

j'espère que je poste au bon endroit, je suis toute nouvelle sur le forum.

Voilà en fait j'ai fait une base de données et j'essaie de transférer l'une des tables sous Excel. J'ai office 2007 mais je préfère exporter en versions 2003 car tout le monde au travail n'a pas le nouvel office. En gros ma méthode c'est :

1) créer un nouveau fichier excel
2) exporter la table dedans

Voici mon code :

' ---
' EXPORT VERS EXCEL
' ---

' liaison à l'exécution.
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

' Rend Excel visible au travers de l'objet Application.
ExcelSheet.Application.Visible = True

' Enregistre la feuille dans le répertoire
Dim strCheminFusion As String
strCheminFusion = Application.CurrentProject.path & "" & cible.Value & ".xlsx" 'Cible est le champ dans lequel je note le nom du fichier
ExcelSheet.SaveAs strCheminFusion

' Ferme Excel en appliquant la méthode Quit sur l'objet Application.
ExcelSheet.Application.Quit
' Supprime la variable objet.
Set ExcelSheet = Nothing

' Place du texte dans la première cellule de la feuille.
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "publipostage", strCheminFusion, True
'ExcelSheet.Application.Cells(1, 1).Value = "F1"


Déjà au niveau de l'enregistrement du fichier ça merdouille. Au début j'avais mis comme extension ".xls" et quand j'ouvre mon fichier Excel me dit :

Le format du fichier que vous tentez d'ouvrir, "export.xls", est différent de celui spécifié par l'extension de fichier. Assurez-vous que le fichier n'est pas endommagé et qu'il provient d'une source fiable avant de l'ouvrir. Souhaitez-vous ouvrir le fichier maintenant ?


Quand je regarde dans les propriétés de mon fichier pourtant, il s'agit bien d'un xls... Quand je clique sur le OUI du message d'erreur, a priori aps de souci. Comprends pô...

Deuxième souci, l'import dans excel ne fonctionne pas, il me dit :

Erreur d'exécution 2391
Le champ "F1" n'existe pas dans la table destination "publipostage".


J'ai cherché dans les posts, on parle de fichier de spécifications d'import, mais franchement je comprends rien, ça m'agace... !

Si quelqu'un pouvait m'aider, je lui serai très reconnaissante !
Merci d'avance

Emmanuelle

6 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
4 mars 2010 à 11:46
Tu as absolument besoin de faire un export ?
Tu peux autrement te contenter de faire une liaison de ta base ACCESS dans ton fichier EXCEL pour avoir toute ta table.

Dans ton fichier Excel, tu fais menu Données\Données externes\Importer et tu vas sélectionner ta base, puis ta table ou ta requête.
Tu valides tout et hop là, tu as toute ta table dans ton fichier. Et si le contenu de ta table change, tu fais juste Clic droit Actualiser et ton fichier EXCEL est à jour.

Molenn
0
loraihalle Messages postés 4 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 4 mars 2010
4 mars 2010 à 11:52
En fait je voudrais faire un truc très simple à utiliser car mes utilisateurs sont généralement pas très dégourdis
J'ai une base de données avec plein d'adresses et j'ai une fonction de tri (type d'établissement, département, etc). L'utilisateur veut, une fois qu'il a trié les données, pouvoir les exporter dans une liste excel en juste un clic... s'il faut aller sélectionner des bases et des tables ça va être trop compliqué...
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
4 mars 2010 à 12:27
Je viens de voir un truc, ton code est bien pour exporter d'ACCESS vers EXCEl ? Dans ce cas, tu as une erreur, toi tu fais un import (acImport)


Je fais mon export d'ACCESS vers EXCEL sous cette forme :
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "TraitementHebdo", NomFichierExport, True


NomFichierExport est une variable qui contient le nom du fichier de destination

Molenn
0
loraihalle Messages postés 4 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 4 mars 2010
4 mars 2010 à 12:44
OMG... Je suis une grosse buse
Voilà ce que c'est de recopier bêtement des morceaux de code !
Effectivement tu as raison c'est bien acEXPORT qu'il faut mettre ! Merci

Bon par contre mon premier souci avec
Le format du fichier que vous tentez d'ouvrir, "export.xls", est différent de 
celui spécifié par l'extension de fichier. Assurez-vous que le fichier n'est pas endommagé 
et qu'il provient d'une source fiable avant de l'ouvrir. Souhaitez-vous ouvrir le fichier maintenant ?


n'est pas résolu ! (logique ça n'a rien à voir)

Enfin déjà j'arrive à exporter encore merci :)
0

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

Posez votre question
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
4 mars 2010 à 13:46
Je en vois pas pour ton premier souci, mais tu dis dans ton 1er post que tu préfères exporter en EXCEl 2003 pour travailler.
Donc que tu crées un fichier .xls

Dans ton code, le fichier que tu crées est au format .xlsx, EXCEL 2007 donc.

Tu as peut être un conflit quelque part au niveau du format à ce niveau ?

Molenn
0
loraihalle Messages postés 4 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 4 mars 2010
4 mars 2010 à 13:54
Oui en fait dans cette ligne :

strCheminFusion = Application.CurrentProject.path & "" & cible.Value & ".xlsx" 'Cible est le champ dans lequel je note le nom du fichier


Au début j'avais mis ".xls" et c'est là que ça me faisait le message comme quoi le format de fichier est différent de celui spécifié par l'extension, alors que quand je faisais clic droit > propriétés sur le fichier créé, c'était bien un xls.

Avec la ligne telle qu'elle est écrite (.xlsx) ça marche mais j'aimerai mieux pouvoir enregistrer du .xls.
0
Rejoignez-nous