Exportar datos a Excel

Bartolom
03 de Agosto del 2005
Tengo el siguiente problema. El exportar datos desde uan datagrid a Excel, tengo una instrucción que funciona perfecto en Windows 2000 y Windows XP, sin embargo en Windows 98, al exportar, me arroja un mensaje de "Error de Automatización" y el programa se cae.

Dim ApExcel As New Excel.Application
Set ApExcel = CreateObject("Excel.Application")
ApExcel.Visible = True
ApExcel.Workbooks.Add

ApExcel.Cells(1, 5).Formula = "INFORME"

y acá es donde se cae y me arroja e error

sdemingo
03 de Agosto del 2005
Hola,

¿cómo es la línea en la que abres la hoja de excel?

Saludos
sdemingo

Bartolom
03 de Agosto del 2005
Sorry, no entendí tu pregunta, a qué te refieres con la línea?

sdemingo
03 de Agosto del 2005
La línea de código VB donde abres el documento, es decir, donde haces el Open

Bartolom
03 de Agosto del 2005
mmmmmmmm, puede que por ahí esté el problema. Hay que hacer algún open? Porque el código lo termino con Set AppExcel= Nothing.

Mira acá va el código que utilizo (obviamente resumí el código redundante de agregar los datos y eso). Supongamos que necesito agregar sólo un título a la hoja excel: el botón con el que exporto se llama cmdExportar

Private Sub cmdExportar_Click()
Dim ApExcel As New Excel.Application
Set ApExcel = CreateObject("Excel.Application")
' Hace que Excel se vea
ApExcel.Visible = True
' Agrega un nuevo Libro
ApExcel.Workbooks.Add

'Título principal
PrimeraFila = 2
ApExcel.Cells(PrimeraFila, 5).Formula = "INFORME"
Set ApExcel = Nothing
End Sub

La referencia a la librería es Excel 10.0 o 8.0 o 9.0dependiendo del Office, pero en eso no hay drama porque la reconoce automáticamente. el problema es que en Windows 98 se cae en la ínea que te mencioné.
Gracias por tus respuestas

sdemingo
03 de Agosto del 2005
Hola,

hombre, por depurar un poco te diré que si eñades la librería de excel y declaras el objeto así:
Dim ApExcel As New Excel.Application
no te haría falta hacer el createobject.

Yo te recomiendo que declares la la variable de tipo object.
Dim ApExcel as Object

y luego crees el objeto
Set ApExcel = CreateObject("Excel.Application")

Vale, eso por un lado.

No hace falta que hagas el Open porque directamente, cuando tienes la aplicación le añades un libro con Add.

Al final, supongo que guardarás el documento con algún nombre: APExcel.activeworkbook.Save

Y para finalizar, a parte de limpiar el objeto con Nothing, deberías hacer un quit de la aplciación, para que no te queden procesos colgados.
ApExcel.Quit (primeo se hace el quit y luego se limpia el objeto ApExcel)

En teoría, así no debería dar problemas, pero con ya se sabe con Microsoft.....

Suerte

Bartolom
03 de Agosto del 2005
También lo hice así, tal como lo mencionas, declarando la variable como objeto y después como
Set ApExcel = CreateObject("Excel.Application")

Pero el problema esel mismo (en Windows 2000 y XP, pefecto, en 98 se cae), de hecho por eso intenté con New Excel.Application. Sobre el final del programa, eso de hacer el Quit voy a probar, porque el problema es que el error aparece al agregar la primera fila, donde están la instrucción

ApExcel.Cells(PrimeraFila, 5).Formula = "INFORME"
Ahí es donde me indica el debug de Visual Basic
Gracias por tu ayuda.



Bartolom
03 de Agosto del 2005
No hay caso con el maldito Windows 98. No veo por sonde solucionar el problema.

francisco
03 de Agosto del 2005
mira quisera ver si me puede ayudar con esto no se como esportar datos desde visual basic a exel y veo que tu lo pudes hacer sera que me puede ayudar

AliritoX
03 de Agosto del 2005
Yo tambien necesito tu ayuda....urgentemente..