Problema al exportar datos a excel

Tengo un Procedimiento para exportar
Datos de VB6 a Excel.
El caso es que el código me funciona en bastantes equipos pero concretamente en
2, no lo hace.
Me da error en la sentencia :
Set XlsApl = CreateObject("Excel.Application")
-> "Error en el metodo"
siendo XlsApl : Dim XlsApl As Object
Porque NO me funciona en esos 2 equipos
(Uno lleva Win98 y el otro XP)
Resulta que de todos los PCs en los
Que ya me lleva funcionado, tienen estos
Sistemas operativos.
A mi me da la sensación de que es problema de incompatibilidad con
algunos ficheros de sistema. No se.
* Mi pregunta si hace falta algun
Componente para Windows o el registro
De algún fichero en esos PCs en
Los que no me funciona la exportación.

2 respuestas

Respuesta
1
¿Cuándo haces el paquetes le agregas la librerías del excel?
Seguro para evitar ese inconveniente por ahí te conviene agregarle al instalar referencias al excel.
El problema de eso es que los sistemas operativos guardan los archivos de sistemas en carpetas diferentes.
Cuando tu programa se instale te tiene que preguntar si deseas cambar el archivo por una version anterior o posterior al existente.
Por más que no hayas puesto ninguna dll en el instalador cuando programas ahí si tuviste que hacer referencia a una dll del excel esa es la que tienes que buscar en esas maquinas y ver si son de una version diferente a la tuya.
¿Pero cuáles son esas dlls?
Para ver la dll de la que estoy hablando.
Por ejemplo
Yo utilizo en proyecto referencias la siguiente:
Microsoft excel 9.0 object library que hace referencia a un archivo, como se ve abajo de la referencia seleccionada, que se encuentra en archivos de programa/microsoft office/office/excel9.OLB
Aca te paso como utilizo dentro del programa los seteos de los libros excel.
'para hojas excel
Dim hojaexcel As excel.Worksheet
Dim libroexcel As New Workbook
'el seteo
Set libroexcel = excel.Workbooks.Add
Set hojaexcel = libroexcel.Sheets.Add
Ejemplo
hojaexcel.Cells(1,1).ColumnWidth = 3 'col a
Sin modificar mucho y guardando lo tuyo fíjate este tipo de seteo (cambiales los nombres por los tuyos nada más)
Así me funciono en 98 con office 2000, en 98 con office 97, en xp con ambos.
Cuando haces el programa desarrollando, tuviste que utilizar el excel.
En proyecto, referencias fíjate todas las dll que utilizas.
Alguna de esas tiene que ser del excel. Aplication o algo parecido.
¿o
¿Estas usando un OLE para llamar al excel ya creado?
Me acabo de dar cuenta que no me falla en
Set XlsApl = CreateObject("Excel.Application")
Sino a la hora de añadir 1 libro.
Después de darme el error, si obligo
A la aplicación a que siga ejecutándose,
me habré excel y me exporta bien los datos.
Es raro y curioso ya que solo me esta pasando en 1equipo en concreto.
Aquí te lo paso para que le eches 1vistazo por si ves algún error :
El error se produce en la sentencia -.
'Añadimos un libro ...
Set XlsLibro = .Workbooks.Add
'***********************************
Private Sub BtnExportarA_Excel_Click()
Dim XlsApl As Object
Dim XlsLibro As Object
On Error GoTo ControlError
'Primero creamos un objeto Excel...
Set XlsApl = CreateObject("Excel.Application")
With XlsApl
'Añadimos un libro ...
Set XlsLibro = .Workbooks.Add
With XlsLibro.Worksheets(1)
'APLICAMOS EL SIGUIENTE FORMATO
XlsApl.Selection.Font.Bold = True 'Negrita
XlsApl.Selection.Font.Name = "Tahoma" 'Fuente de texto
XlsApl.Selection.Font.Size = 12 'Formato de texto
.Range("A1").Value = "Titulo"
.Range("A1:J1").Select 'Selecciona el rango
.Range("A1:J1").Merge 'Une las celdas
'*******************************************************************************************
'Ajustamos el ancho de las columnas al ancho máximo del contenido de sus celdas
.Columns.AutoFit
.Activate
End With
'Y situamos el foco en la hoja de cálculo...
.ActiveWorkbook.Activate
.Visible = True
Set XlsLibro = Nothing
End With
Set XlsApl = Nothing
Me.MousePointer = vbDefault
Exit Sub
ControlError:
MsgBox Err.Number & Chr(vbKeyReturn) & Err.Description & Chr(vbKeyReturn) & Chr(vbKeyReturn), vbCritical, "Atención"
Set XlsLibro = Nothing
Set XlsApl = Nothing
End Sub
'************************************
Me sigue dando la impresión que no
Va a ser problema de código sino
De le que me esta diciendo usted
Respecto a librerías de version diferente pero, por si acaso, échele un vistazo al código cuando pueda.
Gracias.
Saludos.
Ante todo, gracias por atenderme.
No utilizo ninguna referencia.
El programa lo instalo con el asistente
De vb5.
En 1PC esta instalado Win98 y Office97
Y en el otro, esta instalado WinXP
Y OfficeXP.
El caso es que es otros Pcs con lo mismo instalado, el programa funciona perfectamente.
Me da la sensación de que alguna libvreria de Office se actualizo a una version superior y mi programa no
da accedido a crear el objeto y por eso falla.
¿QUÉ me puede decir?
Saludos
¿Qué referencias de excel estas usando?
¿En esos equipos se usan el mismo excel 2000? ¿Xp?
¿Vos instalas el programa con un asistente?
Me alegro que hayas podido resolverlo.
Tendrías que ver el tema de reiniciar y reinstalar el office 97, por ahí vos podes poner como algo necesario de tu programa que se trabaje con office 2000 (en esta época es más que entendible el porque).
Y probar haber si funciona.
De esta manera te aseguras, con el office 2000, usar cualquier base de datos access 2000 y cualquier dll del office.
Y de esta manera ya estableces tus normas o tus reglas para instalar el programa.
Ya, de todas formas, a mi me interesa tener el office 97 porque mis BDs están en esta version y no me interesa por el momento cambiar a
office 2000.
Saludos
Respuesta
1
¿El problema no es el sistema operativo sino más bien la version del office en algunas maquinas no te esta cargando la referencia supongo en las versiones superiores a la que tenias cuando creaste el sistema
me puedes confirmar eso?
En uno de esos PCs, esta instalado el
Office97 (el mismo que tengo yo en mi maquina)
Pero me da la sensación de que las dlls o ficheros de sistema de Office de ese Pc esta actualizados porque este
sistema de exportación lo tengo comprobado de que funciona en otros
Pcs con Office 97.
El otro Pc en el que tengo problemas, lleva Office XP.
Si necesita más información, pidamela.
Espero su respuesta. Gracias.
Exacto es lo que te digo el problema es la referencia que es más antigua en la maquina donde tienes xp como sugerencia en el futuro trata de crear el sistemas en una maquina con la ultima version tanto de sistema operativo como de office
Baja el runtime de vb6 que esta en la página de microsoft y prueba a ver; sino verifica que cuando creas el ejecutable te esta cargando la referencia de office 97 que es la que te falta en la maquina que tiene xp

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas