Bonjour,
J'ai honteusement pompé un jour ces quelques lignes de code :
- la définition des valeurs de variable avec Range().value échoue, avec les 2 autres méthodes c'est OK
- le lancement d'access fonctionne
- mais pas le lancement de la macro (macro1) d'access. J'ai essayé plusieurs macro et même de lancer directement du code access
Qui aurait une idée efficace pour béotien à peine + ?
Merci à tous
====LE CODE ===============================
Sub Lancer_Access()
' VARIABLES
Dim AppAccess As Object ''' l'application Access (objet)
Dim StrBaseAcc As String ''' la base Access
Dim StrMacro As String ''' la macro Access à éxécuter (si besoin)
On Error GoTo ErrorInSub
'Définition des valeurs Access
' par range <== Ca ne marche pas !
' StrBaseAcc = Range("E:\performance_2006\performance_2006.mdb").Value
' StrMacro = Range("macro1").Value
' valeurs de cellules de la feuille active <== Ca marche !
' StrBaseAcc = Range("c1").Value
' StrMacro = Range("c2").Value
' valeurs directes <== Ca marche !
StrBaseAcc = "E:\performance_2006\performance_2006.mdb"
StrMacro = "Macro1"
' On gère une instance d'Access <== Ca marche !
Set AppAccess = CreateObject("Access.Application")
' On ouvre la base de données Access <== Ca marche !
AppAccess.OpenCurrentDatabase StrBaseAcc, False
'on définit si la base est visible ou non <== Ca marche !
AppAccess.Application.Visible = True
' Et on éxécute la macro (si besoin) <== Ca ne marche pas!
AppAccess.Run StrMacro
'on quitte Access
AppAccess.Application.Quit
Set AppAccess = Nothing
' GESTION DE L'ERREUR
ErrorInSub: '<== Ca marche !
MsgBox "Une erreur a été rencontrée lors de l'éxécution de la macro Access depuis Excel. Vérifiez le code source SVP.", vbCritical, "Erreur VBA"
Set AppAccess = Nothing
' Exit Function
End Sub
J'ai honteusement pompé un jour ces quelques lignes de code :
- la définition des valeurs de variable avec Range().value échoue, avec les 2 autres méthodes c'est OK
- le lancement d'access fonctionne
- mais pas le lancement de la macro (macro1) d'access. J'ai essayé plusieurs macro et même de lancer directement du code access
Qui aurait une idée efficace pour béotien à peine + ?
Merci à tous
====LE CODE ===============================
Sub Lancer_Access()
' VARIABLES
Dim AppAccess As Object ''' l'application Access (objet)
Dim StrBaseAcc As String ''' la base Access
Dim StrMacro As String ''' la macro Access à éxécuter (si besoin)
On Error GoTo ErrorInSub
'Définition des valeurs Access
' par range <== Ca ne marche pas !
' StrBaseAcc = Range("E:\performance_2006\performance_2006.mdb").Value
' StrMacro = Range("macro1").Value
' valeurs de cellules de la feuille active <== Ca marche !
' StrBaseAcc = Range("c1").Value
' StrMacro = Range("c2").Value
' valeurs directes <== Ca marche !
StrBaseAcc = "E:\performance_2006\performance_2006.mdb"
StrMacro = "Macro1"
' On gère une instance d'Access <== Ca marche !
Set AppAccess = CreateObject("Access.Application")
' On ouvre la base de données Access <== Ca marche !
AppAccess.OpenCurrentDatabase StrBaseAcc, False
'on définit si la base est visible ou non <== Ca marche !
AppAccess.Application.Visible = True
' Et on éxécute la macro (si besoin) <== Ca ne marche pas!
AppAccess.Run StrMacro
'on quitte Access
AppAccess.Application.Quit
Set AppAccess = Nothing
' GESTION DE L'ERREUR
ErrorInSub: '<== Ca marche !
MsgBox "Une erreur a été rencontrée lors de l'éxécution de la macro Access depuis Excel. Vérifiez le code source SVP.", vbCritical, "Erreur VBA"
Set AppAccess = Nothing
' Exit Function
End Sub