exporter données à partir d'excel vers une table access

exporter données à partir d'excel vers une table access - VB/VBA/VBS - Programmation

Marsh Posté le 25-06-2010 à 16:10:57    

Bonjour,  
 
Dans le cadre d'un stage, j'ai à mettre en place un système de message d'alerte par mail.  
 
Pour faire simple, l'utilisateur ouvre un fichier excel, renseigne les données nécessaires dans une première feuille.  
Ensuite, il active une macro qui va envoyer ces données dans une table access afin d'archiver les données du message.  
 
Voici comment j'ai conçu la macro afin de réaliser cette tache :  
 
Sub importation()  
 
'1) définition des applications  
Dim appAS As Access.Application, wbXL As Excel.Application  
 
'2) ouverture d' access  
Set wbXL = CreateObject("access.Application" )  
appAS.Visible = False  
 
With appAS  
 
'3) ouverture fichier reporting_mailing.mdb  
 
Workbooks.OpenDatabase Filename:="C:\Documents and Settings\Benjamin Corroy\Mes documents\reporting_mailing.mdb", _  
CommandText:="Orders", _  
CommandType:=xlCmdTable, _  
BackgroundQuery:=True, _  
ImportDataAs:=xlPivotTableReport  
 
 
'4) importation des données à partir de cellules ciblées de la feuille alerte, du fichier test.xls  
 
DoCmd.TransferSpreadsheet acImport(acSpreadsheetTypeExcel9, TableAlerte, "C:\Documents and Settings\Benjamin Corroy\Mes documents\test.xls", Feuilles.alerte & "!A2:G2" )  
 
 
'5) fermeture Access  
appAS.Quit  
 
End Sub  
 
 
lors du debogage, le message suivant apparait au niveau de l'étape 4 (acImport) :  
 
erreur de compilation : Table attendu  
 
 
Etant novice en la matière j'espère que chaque étape est bien écrite  
j'aimerais savoir pourquoi l'étape 4 bloque ainsi.  
 
Merci d'avance

Reply

Marsh Posté le 25-06-2010 à 16:10:57   

Reply

Marsh Posté le 25-06-2010 à 16:52:50    

TableAlerte a besoin de guillemets si c'est le nom de la table. Sinon, VBA considère que c'est une variable qui contient le nom de la table, et si cette variable n'est pas remplie, VBA pense qu'il manque le nom de la table.
 
Edit : Idem pour Feuilles.alerte.


Message édité par olivthill le 25-06-2010 à 16:54:12
Reply

Marsh Posté le 28-06-2010 à 09:19:27    

Merci pour l'info.
j'ai rajouté les guillemets, mais le même message d'erreur continue à apparaître.
Il se peut que la macro ne trouve pas la table alerte et donc que l'erreur se trouve en étape 3.

Reply

Marsh Posté le 28-06-2010 à 12:05:34    

j'ai finalement trouver une solution :
 
Sub alerte()
 
'ouverture du fichier access
Dim objAccess As New Access.Application
objAccess.OpenCurrentDatabase "\\Acd\stage benjamin\base de données\reporting_mailing.mdb"
objAccess.Visible = True
     
'execution de la macro access afin d'importer les données
objAccess.DoCmd.RunMacro "alerte"
 
End Sub
 
En gros, j'ouvre le fichier access et j'y active une macro qui importe les données voulues.
 
c'est aussi simple que ça :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed