Bonjour à tous,
Je rencontre un petit probleme d'exécution dans une macro dont le but est de transférer un tableau excel dans une table d'une base Access. Dans les deux cas je suis sous Office 2010.
J'utilise la méthode transferspreadsheet de l'objet Docmd. Le problème vient de la chaîne de texte de l'argument sensé contenir l'adresse de mon tableau Excel : si je laisse les $ dans l'adresse du Range j'ai une erreur d'exécution '3011' avec le message 'le moteur de base de données Microsoft Access n'a pas pu trouver l'objet Feuil1$$A$1:$B$4'. Tout se passe comme si le ! était remplacé par un $ dans ma chaîne d'adresse. Lorsque j'enlève les $ dans ma chaîne d'adresse, c'est-à-dire "Feuil1!A1:B4" au lieu de "Feuil1!$A$1:$B$4" ça fonctionne sans problème...
Auriez-vous une piste s'il vous plait ? je n'ai rien trouvé sur le forum ou les FAQ sur ce problème précis.
Voici mon code :
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub Macro2() Dim NClasseur As Workbook Dim oAcApp As Object Dim MyDatabase As Database Set NClasseur = Application.ActiveWorkbook Set oAcApp = CreateObject("Access.Application") oAcApp.OpenCurrentDatabase "C:\Documents and Settings\My Documents\MaBase.mdb", False Set MyDatabase = oAcApp.CurrentDb oAcApp.Docmd.transferspreadsheet acImport, 8, _ "Exemple", NClasseur.FullName, True, "Feuil1!$A$1:$B$4" End Sub
Stargates
Partager