Otra duda sobre la exportación a Excel

El código parece que es lo que necesito, pero tengo dos dudas: lo que yo quiero en lugar de crear un fichero excel nuevo, es abrir uno existente, luego la opción CreateObject debería cambiar (¿cuál debo utilizar para abrir una base de datos y que parámetros necesita?) Además, las celdas que quiero escribir están en una hoja existente (llamada "Medidas").
Muchas gracias,
Samoe2000.

1 respuesta

Respuesta
1
El CreateObject debes mantanerlo, ya que lo que hace esta linea es crearuna variable objeto de tipo Excel, y eso sigues teniéndolo que hacer. Lo que si debes hacer después del CreateObject es poner la siguiente linea para que te abra el fichero que quieres:
'Abrimos el fichero de Excel donde tengamos los datos
appExcel.Workbooks.Open FileName:="c:\RutaDeTuFichero\TuFichero.xls"
Luego, para utilizar la hoja del fichero de Excel que ya tienes creada, debes eliminar la linea donde te ponía:
Set wbLibro = appExcel.Workbooks.Add
Y en su lugar poner:
Sheets("Medidas").Select
Con esto tendrás tu libro de excel abierto, y estarás situado en la hoja Medidas tal y como querías para coger los datos de las columnas.
Espero que esto sea lo que necesitas. Si no es así, no dudes en decírmelo y concretaremos.
El código que definitivamente he puesto es el siguiente:
Sub ExportExcel()
Dim AppExcel As Object
Dim wbLibro As Object
Set AppExcel = CreateObject("Excel.Application")
AppExcel.Workbooks.Open FileName:="C:\Prueba.xls"
AppExcel.Visible = True
AppExcel.Sheet("Medidas").Select
AppExcel.Range("M16").Select
AppExcel.ActiveCell.FormulaR1C1 = Forms![Introducir nueva acción]![Descripcion_Accion]
AppExcel.Range("blk_month").Select
AppExcel.ActiveCell.FormulaR1C1 = Forms![Introducir nueva acción]![Mes Inicio]
AppExcel.Range("blk_FY").Select
AppExcel.ActiveCell.FormulaR1C1 = Forms![Introducir nueva acción]![year_init]
AppExcel.Quit
Set wbLibro = Nothing
Set AppExcel = Nothing
End Sub
Bueno, al ejecutar la acción abre correctamente el fichero de Excel escogido, escribe en las celdas deseadas el valor de los campos del formulario, pero hay vienen los problemas.
Antes, utilizaba la linea:
wbLibro.SaveAs "C:\Prueba2.xls", pero ahora la variable wbLibro no esta definida, ya que he eliminado la linea:
Set wbLibro = AppExcel.Workbooks.Add
Y además al cerrar el excel, me da un error, supongo que debido a que no se ha podido ejecutar correctamente la orden AppExcel.Quit
Muchas gracias por tu ayuda, me esta siendo de gran utilidad.
Un saludo,
Samoe2002.
Siento no haberte podido contestar antes, pero es que he estado de viaje por temas de trabajo y no he paradao...
Para salvar el fichero, y en un principio evitar el error al cerrar Excel, po lo siguiente:
AppExcel. Sabe
Antes de
AppExcel. Quit
De estén modo se grabará el fichero y se cerrará la aplicación. Lo de que te dé error al intentar cerrar el Excel puede ser debido a que no estabas salvando antes el fichero (por lo que te pedía confirmación de grabación) o bien que antes de ejecutar el DoCmd. Quit habías cerrado el Excel tu manualmente, por lo que al intentar cerrarlo desde código se produce un error.
Prueba lo que te indico y si te sigue dando probolemas no dudes en comentármelo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas