Cekankonvaou
XLDnaute Junior
Bonjour à tous,
J'ai une base ACCESS dans laquelle j'exécute tous les jours à la même heure une macro d'import.
J'ai un gros soucis de temps d'exécution sur cette macro VBA.
Le problème ne vient la macro mais de l'endroit ou se trouve la base ACCESS :
*si je copie celle ci en local (sur mon PC), j'y exécute la macro en un temps raisonnable
*si je duplique la base sur le serveur ou elle se trouve et que j'y exécute la macro (donc sans autres personnes à y accéder), le temps explose
Le problème vient donc de son lieu de stockage. Pour tout un tas de raison, je ne peux pas le changer.
Je suis donc parti dans l'idée de faire un petit bout de code qui ferait les choses suivantes :
1-je duplique ma base sur le serveur (backup)
2-je déplace ma base sur mon PC
3-j'exécute la macro dans ma base
4-une fois qu'elle est finie, je remets la base à sa place
Pas génial, j'en conviens...mais pas beaucoup d'autres choix pour l'instant.
Mon problème survient quand je veux exécuter la macro de la base ACCESS depuis mon code VBA EXCEL
Ce code débouche systématiquement sur :
-une proposition de choix d'une des tables/requêtes de ma base,
-si je fais une sélection, l'import des données dans un EXCEL
-le message d'erreur suivant :
Erreur d'exécution '1004':
Impossible d'exécuter la macro "C:\test.accdb'!test'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées
Est ce que quelqu'un aurait une piste de résolution de ce problème???
Merci d'avance.
Bertrand
J'ai une base ACCESS dans laquelle j'exécute tous les jours à la même heure une macro d'import.
J'ai un gros soucis de temps d'exécution sur cette macro VBA.
Le problème ne vient la macro mais de l'endroit ou se trouve la base ACCESS :
*si je copie celle ci en local (sur mon PC), j'y exécute la macro en un temps raisonnable
*si je duplique la base sur le serveur ou elle se trouve et que j'y exécute la macro (donc sans autres personnes à y accéder), le temps explose
Le problème vient donc de son lieu de stockage. Pour tout un tas de raison, je ne peux pas le changer.
Je suis donc parti dans l'idée de faire un petit bout de code qui ferait les choses suivantes :
1-je duplique ma base sur le serveur (backup)
2-je déplace ma base sur mon PC
3-j'exécute la macro dans ma base
4-une fois qu'elle est finie, je remets la base à sa place
Pas génial, j'en conviens...mais pas beaucoup d'autres choix pour l'instant.
Mon problème survient quand je veux exécuter la macro de la base ACCESS depuis mon code VBA EXCEL
VB:
Sub toto()
Dim DBCopy As DAO.Database
Dim rs As DAO.Recordset
cheminbasecopie = "C:\test.accdb"
Set DBCopy = OpenDatabase(cheminbasecopie)
Application.Run ("'" & DBCopy.Name & "'!test")
End Sub
Ce code débouche systématiquement sur :
-une proposition de choix d'une des tables/requêtes de ma base,
-si je fais une sélection, l'import des données dans un EXCEL
-le message d'erreur suivant :
Erreur d'exécution '1004':
Impossible d'exécuter la macro "C:\test.accdb'!test'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées
Est ce que quelqu'un aurait une piste de résolution de ce problème???
Merci d'avance.
Bertrand