Visual Basic - Visual Basic 6 en windows 10 y office 2016

Life is soft - evento anual de software empresarial
   
Vista:

Visual Basic 6 en windows 10 y office 2016

Publicado por Angi (8 intervenciones) el 26/06/2017 22:46:52
Buenas amigos, necesito su ayuda urgente, por favor, fijsense que he creado una aplicacion en vb6 que me me hace ciertos calculos y a la vez me da reportes en word y en excel, lo que sucede es que mi programa funciona en cualquier sistema operativo sin importar la version de office.. el gran problema es que no me genera el reporte en excel en computadoras que tengan windows 10 y office 2016, he probado en otras computadoras que tienen windows 10 y otra versión de office diferente al 2016 y me funciona perfectamente, al igual he probado en computadoras con windows diferente al 2010 y con office 2016 y al igual todo funciona perfecto.. solo tengo ese problema, el reporte de excel no me lo da en computadoras con windows 10 y office 2016, ya lo compilado en una maquina con estas caracteristicas entonces me dice que unos comandos que dan formatos a tablas de excel al parecer están malos, lo que a mi me sorprende es por que en las otras computadoras no me da ese error aun usando office 2016.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo

Visual Basic 6 en windows 10 y office 2016

Publicado por Andres Leonardo (1106 intervenciones) el 27/06/2017 15:48:30
desaria saber cual es la linea de error?

puede ser que en esa maquia no esta registrada alguna libreria

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Visual Basic 6 en windows 10 y office 2016

Publicado por Angi (8 intervenciones) el 27/06/2017 16:57:29
Hola Andres. me tira error 429 línea de error me salta en 0. (Puse código para ver donde se producía el error) es cuando tengo que extraer los datos de Excel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo

Visual Basic 6 en windows 10 y office 2016

Publicado por Andres Leonardo (1106 intervenciones) el 27/06/2017 18:41:45
te recomendaria poner el codigo de error

En todo caso lee esto

https://support.microsoft.com/es-sv/help/828550/you-receive-run-time-error-429-when-you-automate-office-applications


Resumen
Cuando utiliza el operador New o la función CreateObject en Microsoft Visual Basic para crear una instancia de una aplicación de Microsoft Office, puede aparecer un mensaje de error similar al siguiente:
Se ha producido el error 429 en tiempo de ejecución: El componente ActiveX no puede crear el objeto
Este error se produce cuando el objeto Automation solicitado no se pudo crear mediante COM y, por tanto, no está disponible para Visual Basic. No aparece normalmente en todos los equipos.

Este artículo proporciona algunas sugerencias para solucionar problemas que ayudan a diagnosticar y resolver problemas comunes que se sabe que producen este error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Visual Basic 6 en windows 10 y office 2016

Publicado por Angi (8 intervenciones) el 27/06/2017 20:38:00
Si Andrés. Es artículo ya lo leí. Ya consulté ese código y probé varias alternativas. En el único caso que no me funciona es con Windows 10 y Excel 2016. Otras máquinas con Windows 10 y Excel 2007 corre bien y con Windows 7 y Excel 2016 también. Es en esta única máquina que no lo puedo hacer funcionar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo

Visual Basic 6 en windows 10 y office 2016

Publicado por Andres Leonardo (1106 intervenciones) el 27/06/2017 21:48:39
pero por eso te digo algo tiene el componente activex ...

podrias postear tu codigo para verlo

quizas alguna libreria falte reinstalar o registrar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Visual Basic 6 en windows 10 y office 2016

Publicado por Angi (8 intervenciones) el 28/06/2017 00:01:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Private Sub Cmd_Importar_Click()
Dim objXLApp As Excel.Application
Dim intLoopCounter As Integer
Dim Fila As Integer
Dim Tubo As String, RangoI As String, AnimalL1 As String, AnimalL2 As String, Animal As String, NombreCat As String
Dim AnimalN As Long, Categoria As Integer, CargaError As Integer, MError As Integer
Dim NFilaA As String
    'mouse aviso que trabaja
  On Error GoTo err_handler
    Frm_BArchivo.MousePointer = vbHourglass
    CargaError = 0
    MError = 0
    NFilaA = ""
    If Trim(Lbl_Ruta.Caption) = "" Then
        Mensaje = MsgBox("No ha especificado la ruta del Archivo a Importar.", 64, "INFORMACIÓN AL USUARIO")
        Exit Sub
    End If
    If Mid(Lbl_Ruta.Caption, Len(Lbl_Ruta.Caption) - 2) = "xls" Or Mid(Lbl_Ruta.Caption, Len(Lbl_Ruta.Caption) - 3) = "xlsx" Then
        CadenaRuta = Lbl_Ruta.Caption
        'Abro archivo Excel
        Set objXLApp = CreateObject("Excel.Application")
        'Set objXLApp = New Excel.Application
        With objXLApp
            .Workbooks.Open CadenaRuta
            .Workbooks(1).Worksheets(1).Select
            'Grd_Carga.Rows = CInt(.ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row) + 1
            For intLoopCounter = 2 To Frm_CargaAnimalesP!Grd_Animales.Rows
                Fila = intLoopCounter - 1
                Tubo = CLng(.Range("A" & intLoopCounter)) 'Tubo
                RangoI = .Range("B" & intLoopCounter) 'Clasificación
 
 
 
            Next intLoopCounter
            .Workbooks(1).Close False
            .Quit
        End With
        Set objXLApp = Nothing
        Frm_BArchivo.MousePointer = 0
        If MError = 1 Then
            Mensaje = MsgBox("Algunos animales no se cargaron por no cumplir las condiciones solicitadas." & Chr(13) & "Corresponden a las filas:" & NFilaA & " del archivo de Excel.", 64, "INFORMACIÓN AL USUARIO")
        End If
        Else
        Mensaje = MsgBox("No ha seleccionado un archivo con extensión xls o xlsx." & Chr(13) & "Intentelo nuevamente.", 64, "INFORMACIÓN AL USUARIO")
        Exit Sub
    End If
    Unload Me
err_handler:
   MsgBox "The code failed at line " & Erl & err.Description, vbCritical
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Visual Basic 6 en windows 10 y office 2016

Publicado por Juan Gilberto (310 intervenciones) el 28/06/2017 17:56:49
La solucion al problema es como Angi explica o al menos trata

Se trata de la instanciacion del objeto
El error se da cuando usas Early Binding
La solucion es utilizar Late Binding

Al utilizar Late Binding se utilizan las librerias del software instalado en esa pc en particular y no las que nosotros referenciamos al desarrollar la aplicacion


Set objXLApp = CreateObject("Excel.Application") <---Late
'Set objXLApp = New Excel.Application <---Early
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Visual Basic 6 en windows 10 y office 2016

Publicado por Angi (8 intervenciones) el 28/06/2017 19:45:09
Hola Juan.
Aun así no me funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Visual Basic 6 en windows 10 y office 2016

Publicado por Juan Gilberto (310 intervenciones) el 29/06/2017 16:51:50
Mas o menos va asi... es solo ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'Declarar objetos
Dim xls             As Object
Dim xlssheet        As Object
Dim xlswbook        As Object
Dim MLng1	    As Long
 
 
'Instanciar objetos
    Set xls = CreateObject("Excel.Application")
    Set xlswbook = xls.Workbooks.Add
        xls.Visible = True
    Set xlssheet = xlswbook.Sheets.Item(1)
 
    MLng1 = 1&
    xlssheet.Cells(MLng1, 1) = "RFC"
    xlssheet.Cells(MLng1, 2) = "CURP"
    xlssheet.Cells(MLng1, 3) = "NOM_EMP"
    xlssheet.Cells(MLng1, 4) = "CONCEPTO"
    xlssheet.Cells(MLng1, 5) = "IMPORTE"
    xlssheet.Cells(MLng1, 6) = "PERIODO"
    xlssheet.Cells(MLng1, 7) = "TMOV"
 
 
 
'Desinstanciar objetos
    Set xlssheet = Nothing
    Set xlswbook = Nothing
    Set xls      = Nothing

En tu proyecto agrega referencia a tu libreria de excel para que
tengas acceso a la interfase del objeto excel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar