VBA-Access: Trabajar con excel en segundo plano
Tengo el siguiente código:
- Private Sub B_Exporta_Click()
- DoCmd.SetWarnings False
- DoCmd.GoToRecord , , acFirst
- Dim rst As DAO.Recordset
- Dim appexcel As Object
- Dim plantilla As Object
- Set rst = Form.Recordset
- Set appexcel = CreateObject("Excel.Application")
- Do While Not rst.EOF
- With appexcel
- .Visible = False
- .DisplayAlerts = False
- Set plantilla = appexcel.Workbooks.Open(CurrentProject.Path & "\Plantilla_Reporte_OKs.xlsx")
plantilla.SaveAs CurrentProject.Path & "\OKs\" & Me.Clasifica & ".xlsx" - DoCmd.RunSQL "select Nombre_Fichero, Fecha_Carga, Unidad, Codigo_Error, Campo_Error, Descripción_Error, OKs_x_Reg_OK, KOs_x_Reg_OK, Id_Usuario, Clasifica into " & Me.Clasifica & " from Resumen_OKs_Clasifica where Clasifica='" & Me.Clasifica & "'"
- DoCmd.TransferSpreadsheet TransferType:=acExport, SpreadsheetType:=acSpreadsheetTypeExcel9, TableName:=Me.Clasifica, fileName:=CurrentProject.Path & "\OKs\" & Me.Clasifica & ".xlsx", Range:="Rango"
- DoCmd.DeleteObject acTable, Me.Clasifica
- plantilla.Sheets(2).Rows("6:6").Delete
- plantilla.Close (True)
- .Quit
- rst.MoveNext
- End With
- Loop
- End Sub
El código me funciona bien siempre y cuando no tenga ningún excel abierto. En cuanto tengo un excel abierto no me funciona.
El problema es que tengo fortalecer el código para que sí funcione con otras exceles abiertas aunque sean ajenas a lo que ejecuta el código.