Set objApplicationExcel = CreateObject("Excel.Application")
objApplicationExcel.Visible = True
Set objWorkbook = objApplicationExcel.Workbooks.Add()
Set objWorkSheet = objWorkbook.Worksheets(1)
With objWorkSheet
.Cells(1, 1).Value = "azerty" 'Fonctionne
MsgBox .Range("A1").Value 'Fonctionne
Set Qt = .QueryTables.Add(objRst, .Range("A1")) ' <---- E R R E U R
End With
[...]
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour Jacques,
Tu as un problème avec ta connexion et ton recordset. Tu les crées dans Acces et tu veux ensuite que l'application Excel prenne la mais où access était rendu ! Mais Excel, lui est perdu parce qu'il ne connaît pas l'existence de ce qui précède !!!!!!
Pourquoi ne pas faire simple :
Tu crées ta macro dans excel qui crée ton QueryTable.
Et dans Access, tu crées une instance d'excel, tu ouvres le fichier et tu exécutes la macro.
Tu pourrais avoir quelque chose comme qui ressemblerait à ceci
'----------------------- Dim Xl as object Dim Wk as workbook
Set Xl = createobject("Excel.Application") Xl.Visible = True ' ou False Set Wk = xl.Workbooks("C:MonFichier.xls")
xl.run "NomDeLaMacro" ' Créant le querytable
Wk.close True 'ferme le classeur avec sauvegarde xl.Quit ' ferme l'instance d'excel Set Wk = Nothing : Set xl = Nothing '-----------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de news: %23gs%23Fq$
Maintenant je souhaite appeler ce code à partir de VBA sous Access, mais un message d'erreur apparait :
"Erreur d'exécution '5': Argument ou appel de procédure incorrect"
MDAC et Excel déclarés dans les références.
Sub testExcel()
Dim objConnexion As New ADODB.Connection Dim objRst As New ADODB.Recordset Dim strSQL As String
Dim objApplicationExcel As Excel.Application Dim objWorkbook As Excel.Workbook Dim objWorkSheet As Excel.Worksheet Dim Qt As Excel.QueryTable
Set objApplicationExcel = CreateObject("Excel.Application") objApplicationExcel.Visible = True Set objWorkbook = objApplicationExcel.Workbooks.Add() Set objWorkSheet = objWorkbook.Worksheets(1)
With objWorkSheet .Cells(1, 1).Value = "azerty" 'Fonctionne MsgBox .Range("A1").Value 'Fonctionne Set Qt = .QueryTables.Add(objRst, .Range("A1")) ' <---- E R R E U R End With [...] End Sub
Une idée ?
Jacques.
Bonjour Jacques,
Tu as un problème avec ta connexion et ton recordset. Tu les crées dans Acces et tu veux ensuite que l'application Excel
prenne la mais où access était rendu ! Mais Excel, lui est perdu parce qu'il ne connaît pas l'existence de ce qui
précède !!!!!!
Pourquoi ne pas faire simple :
Tu crées ta macro dans excel qui crée ton QueryTable.
Et dans Access, tu crées une instance d'excel, tu ouvres le fichier et tu exécutes la macro.
Tu pourrais avoir quelque chose comme qui ressemblerait à ceci
'-----------------------
Dim Xl as object
Dim Wk as workbook
Set Xl = createobject("Excel.Application")
Xl.Visible = True ' ou False
Set Wk = xl.Workbooks("C:MonFichier.xls")
xl.run "NomDeLaMacro" ' Créant le querytable
Wk.close True 'ferme le classeur avec sauvegarde
xl.Quit ' ferme l'instance d'excel
Set Wk = Nothing : Set xl = Nothing
'-----------------------
Salutations!
"Vuillermet Jacques" <nospam@nospam.com> a écrit dans le message de news: %23gs%23Fq$HFHA.276@tk2msftngp13.phx.gbl...
Maintenant je souhaite appeler ce code à partir de VBA sous Access, mais un
message d'erreur apparait :
"Erreur d'exécution '5':
Argument ou appel de procédure incorrect"
MDAC et Excel déclarés dans les références.
Sub testExcel()
Dim objConnexion As New ADODB.Connection
Dim objRst As New ADODB.Recordset
Dim strSQL As String
Dim objApplicationExcel As Excel.Application
Dim objWorkbook As Excel.Workbook
Dim objWorkSheet As Excel.Worksheet
Dim Qt As Excel.QueryTable
Set objApplicationExcel = CreateObject("Excel.Application")
objApplicationExcel.Visible = True
Set objWorkbook = objApplicationExcel.Workbooks.Add()
Set objWorkSheet = objWorkbook.Worksheets(1)
With objWorkSheet
.Cells(1, 1).Value = "azerty" 'Fonctionne
MsgBox .Range("A1").Value 'Fonctionne
Set Qt = .QueryTables.Add(objRst, .Range("A1")) ' <---- E R R E U R
End With
[...]
End Sub
Tu as un problème avec ta connexion et ton recordset. Tu les crées dans Acces et tu veux ensuite que l'application Excel prenne la mais où access était rendu ! Mais Excel, lui est perdu parce qu'il ne connaît pas l'existence de ce qui précède !!!!!!
Pourquoi ne pas faire simple :
Tu crées ta macro dans excel qui crée ton QueryTable.
Et dans Access, tu crées une instance d'excel, tu ouvres le fichier et tu exécutes la macro.
Tu pourrais avoir quelque chose comme qui ressemblerait à ceci
'----------------------- Dim Xl as object Dim Wk as workbook
Set Xl = createobject("Excel.Application") Xl.Visible = True ' ou False Set Wk = xl.Workbooks("C:MonFichier.xls")
xl.run "NomDeLaMacro" ' Créant le querytable
Wk.close True 'ferme le classeur avec sauvegarde xl.Quit ' ferme l'instance d'excel Set Wk = Nothing : Set xl = Nothing '-----------------------
Salutations!
"Vuillermet Jacques" a écrit dans le message de news: %23gs%23Fq$
Maintenant je souhaite appeler ce code à partir de VBA sous Access, mais un message d'erreur apparait :
"Erreur d'exécution '5': Argument ou appel de procédure incorrect"
MDAC et Excel déclarés dans les références.
Sub testExcel()
Dim objConnexion As New ADODB.Connection Dim objRst As New ADODB.Recordset Dim strSQL As String
Dim objApplicationExcel As Excel.Application Dim objWorkbook As Excel.Workbook Dim objWorkSheet As Excel.Worksheet Dim Qt As Excel.QueryTable
Set objApplicationExcel = CreateObject("Excel.Application") objApplicationExcel.Visible = True Set objWorkbook = objApplicationExcel.Workbooks.Add() Set objWorkSheet = objWorkbook.Worksheets(1)
With objWorkSheet .Cells(1, 1).Value = "azerty" 'Fonctionne MsgBox .Range("A1").Value 'Fonctionne Set Qt = .QueryTables.Add(objRst, .Range("A1")) ' <---- E R R E U R End With [...] End Sub