Visual Basic 6.0 y Excel

Respuesta de
a
Usuario
Hola estoy trabajando en una aplicación de VB 6.0 la cual utiliza automatización para trabajar con un archivo de excel, mi aplicación abre excel y crea un archivo al vuelo y lo cierra, obviamente mi programa requiere que excel este instalado en la pc donde se intala el mismo (mi programa no instala excel.

Ahora, mi problema es que si lo compilo en una PC donde tenga instalado Office 97, entonces en ejecución busca el archivo EXCEL8.OLB, cuando lo compilo en Offce 2000, entonces busca en ejecución el archivo EXCEL9.OLB y cuando lo compilo en Office XP busca en ejecución el archivo EXCEL.EXE, esto me ha obligado a tener 3 instaladores, cada uno compilado en una pc con una version de Office en particular (97,2000 y XP) y, luego cuando lo instalo verifico que Office tiene instalada la PC destino e instalo el setup correcto.

Si lo instalo mi programa compilado en una pc donde tenga Office 97 instalado y luego lo instalo en una PC que tenga Office 2000 instalado, al ejecutarse mi rutina de acceso a Excel truena mi programa, siempre debo asegurarme de instalar la version correcta y esto me ha echo la vida de cuadritos.

¿Cómo puedo hacer para tener un solo instalador, sin importar que version de Excel (Office xxxx) tenga instalada la pc donde se instala?

Anexo algo del código de mi rutina que crea el archivo de excel.

Muchas gracias por tu ayuda.

Public Sub GeneraXLS1(file As String, rsPartidas As ADODB.Recordset, cliente As clsCliente)
On Error GoTo GeneraXLS1_Error
Dim xlApp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = New Excel.Application'ESTA LINEA TRUENA SI ESTA LA VERSION DE EXCEL EQUIVOCADA
Set xlbook = xlApp.Workbooks.Open("c:\TEMPLATE.XLS")
Set xlSheet = xlbook.Worksheets(1)


xlSheet.Cells(fila, COL_XLS_PARTIDA).Value = "PARTIDA"
xlSheet.Cells(fila, COL_XLS_UBICACION).Value = "UBICACION"
xlSheet.Cells(fila, COL_XLS_DESCRIPCION).Value = "DESCRIPCION"
xlSheet.Cells(fila, COL_XLS_ANCHO).Value = "ANCHO"
xlSheet.Cells(fila, COL_XLS_ALTO).Value = "ALTO"
xlSheet.Cells(fila, COL_XLS_PIEZAS).Value = "PIEZAS"
xlSheet.Cells(fila, COL_XLS_PU).Value = "PU"
xlSheet.Cells(fila, COL_XLS_TOTAL).Value = "TOTAL"

'---aqui se ejecutan mas operacinoes similares a las anteriores

xlbook.SaveAs file
xlApp.Visible = True
Set xlApp = Nothing
Set xlbook = Nothing
Set xlSheet = Nothing
Screen.MousePointer = vbNormal
GoTo Fin
GeneraXLS1_Error:
If Err <> CANCEL_EXCEL_ERR Then
MsgBox "Error: " & Err & " " & Error, vbCritical
Else
xlbook.Close False
xlApp.Quit
End If
Fin:
End Sub
Experto
¿Hola estaba estudiando tu problema cuando tu programa truena llamas a que muestra el mensaje de error no?

Esto pasa si te equivocaste al instalar el dll de excel correspondiente

¿Probaste cargando todas las dll? ¿Juntas en el mismo programa?

Porque antes de entrar a esta parte haces un buscador del archivo

Pregunta si encuenta el excel8. ¿old si la ruta donde lo guardas la conoces vas a ser más rapido?

Por favor contestame mis dudas porque es un tema sobre el cual interesa a muchos...

Muchas gracias

leandro
Usuario
Hola, ya resolví el problema, utilice vinculacino tardía CreateObject(), gracias