Bonjour,

Je lance depuis excel une macro dans Access, pour se faire j'utilise le code suivant :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub connect()
 
Dim Db As DAO.Database
Dim strSQL As String
Dim derlign As Long, i As Long
 
 
'connexion à la base
Set Db = DAO.OpenDatabase("Q:\ECHANGE_FINANCE\données Projets\Suivideprojets.mdb", False, False)
 
  Call MAJPREVCAPEX_7
 
End Sub
 
 
 
Function MAJPREVCAPEX_7()
On Error GoTo MAJPREVCAPEX_7_Err
 
    DoCmd.OpenQuery "VIDEDATAHEURESMENSUALISEES", acViewNormal, acEdit
    DoCmd.RunSQL "INSERT INTO DATAHEURESMENSUALISEE ( Num_Projet, Heures, [Date], Type, Dimension )  SELECT MENSUALISATIONPREVCAPEX.Num_Projet, MENSUALISATIONPREVCAPEX.[05_2010], ""15/5/2010"" AS [DATE], ""PREVEUROS"" AS TYPE, ""CAPEX"" AS DIMENSION  FROM MENSUALISATIONPREVCAPEX;  ", -1
    DoCmd.RunSQL "INSERT INTO DATAHEURESMENSUALISEE ( Num_Projet, Heures, [Date], Type, Dimension )  SELECT MENSUALISATIONPREVCAPEX.Num_Projet, MENSUALISATIONPREVCAPEX.[06_2010], ""15/6/2010"" AS [DATE], ""PREVEUROS"" AS TYPE, ""CAPEX"" AS DIMENSION  FROM MENSUALISATIONPREVCAPEX;  ", -1
    DoCmd.RunSQL "INSERT INTO DATAHEURESMENSUALISEE ( Num_Projet, Heures, [Date], Type, Dimension )  SELECT MENSUALISATIONPREVCAPEX.Num_Projet, MENSUALISATIONPREVCAPEX.[07_2010], ""15/07/2010"" AS [DATE], ""PREVEUROS"" AS TYPE, ""CAPEX"" AS DIMENSION  FROM MENSUALISATIONPREVCAPEX;", -1
    DoCmd.RunSQL "INSERT INTO DATAHEURESMENSUALISEE ( Num_Projet, Heures, [Date], Type, Dimension )  SELECT MENSUALISATIONPREVCAPEX.Num_Projet, MENSUALISATIONPREVCAPEX.[08_2010], ""15/08/2010"" AS [DATE], ""PREVEUROS"" AS TYPE, ""CAPEX"" AS DIMENSION  FROM MENSUALISATIONPREVCAPEX;", -1
    DoCmd.RunSQL "INSERT INTO DATAHEURESMENSUALISEE ( Num_Projet, Heures, [Date], Type, Dimension )  SELECT MENSUALISATIONPREVCAPEX.Num_Projet, MENSUALISATIONPREVCAPEX.[09_2010], ""15/09/2010"" AS [DATE], ""PREVEUROS"" AS TYPE, ""CAPEX"" AS DIMENSION  FROM MENSUALISATIONPREVCAPEX;", -1
    DoCmd.RunSQL "INSERT INTO DATAHEURESMENSUALISEE ( Num_Projet, Heures, [Date], Type, Dimension )  SELECT MENSUALISATIONPREVCAPEX.Num_Projet, MENSUALISATIONPREVCAPEX.[10_2010], ""15/10/2010"" AS [DATE], ""PREVEUROS"" AS TYPE, ""CAPEX"" AS DIMENSION  FROM MENSUALISATIONPREVCAPEX;", -1
    DoCmd.RunSQL "INSERT INTO DATAHEURESMENSUALISEE ( Num_Projet, Heures, [Date], Type, Dimension )  SELECT MENSUALISATIONPREVCAPEX.Num_Projet, MENSUALISATIONPREVCAPEX.[11_2010], ""15/11/2010"" AS [DATE], ""PREVEUROS"" AS TYPE, ""CAPEX"" AS DIMENSION  FROM MENSUALISATIONPREVCAPEX;", -1
    DoCmd.RunSQL "INSERT INTO DATAHEURESMENSUALISEE ( Num_Projet, Heures, [Date], Type, Dimension )  SELECT MENSUALISATIONPREVCAPEX.Num_Projet, MENSUALISATIONPREVCAPEX.[12_2010], ""15/12/2010"" AS [DATE], ""PREVEUROS"" AS TYPE, ""CAPEX"" AS DIMENSION  FROM MENSUALISATIONPREVCAPEX;", -1
    DoCmd.RunSQL "INSERT INTO DATAHEURESMENSUALISEE ( Num_Projet, Heures, [Date], Type, Dimension )  SELECT MENSUALISATIONPREVCAPEX.Num_Projet, MENSUALISATIONPREVCAPEX.[01_2011], ""15/01/2011"" AS [DATE], ""PREVEUROS"" AS TYPE, ""CAPEX"" AS DIMENSION  FROM MENSUALISATIONPREVCAPEX;", -1 MAJPREVCAPEX_7_Exit:
    Exit Function
 
MAJPREVCAPEX_7_Err:
    MsgBox Error$
    Resume MAJPREVCAPEX_7_Exit
 
End Function
Le probléme est que pour se lancer il faut que la base soit ouverte , est-il possible de faire la même chose sans être obliger d'ouvrir la base ?

Merci de votre aide