Me da error al intentar abrir un excel con macro

Recientemente me pasaron un excel con macro para simplemente ejecutar, pero resulta que viene con un error, no se si me falta habilitar algo en excel o alguna aplicación adicional que deba instalar.

2 respuestas

Respuesta
1

Según el que me lo entrego, que buscando por internet se solucionaba pero que va, no he podido hacer nada.

Adjunto imagen:

1ro Sale el error objetos no disponibles y luego el otro error 424

Los office que he utilizado son 2019 64bit 2016 64bit 2010 32bit 2003 32bit y en todos he tenido el mismo error, y pude ver la referencias porque pude desbloquear la clave que tiene la macro, o no se si tiene que ver la firma, hasta incluso instale el visual basic 6.0, no se si quieres revisar el excel.

En la imagen paso la referencia y abajo cuando le doy a depurar me sombrea esa linea.

Respuesta
1

[Hola

Es complicado saber qué ocurre sin información. Comparte detalles o imágenes del problema para poder ayudarte.

Saludos]

Abraham Valencia

[Hola

Aunque has enviado tu respuesta como otro hilo, yo seguiré por aquí.

Al parecer el libro de Excel en cuestión utiliza algún objeto ActiveX (o similar) que no está instalado/registrado en la PC en la que quieres usar el archivo y/o quizá incluso no sea compatible con tu versión de Excel .

Comenta qué versión de Office usas (incluye si es de 32 o 64 bits - OJO, bits del Office, no del Windows) y además entra al editor del VBA y en el menú "Herramientas" - "Referencias", comenta cuál sale precedida de la palabra "Falta" o "Missing".

Abraham Valencia

Los office que he utilizado son 2019 64bit 2016 64bit 2010 32bit 2003 32bit y en todos he tenido el mismo error, y pude ver la referencias porque pude desbloquear la clave que tiene la macro, o no se si tiene que ver la firma, hasta incluso instale el visual basic 6.0, no se si quieres revisar el excel.

En la imagen paso la referencia y abajo cuando le doy a depurar me sombrea esa linea.

Ajá, he ahí el dilema, ese libro usa "Microsoft Common Dialog Control 6.0", los cuales no son compatibles con todas las versiones de Office y además no viene por defecto instalado/registrado en Windows.

En algunas versiones si lo instalas/registras podría correr (ojo, en ningún Office de 64 bits funcionará), pero no en todas, igual puedes descargarlo por aquí:

https://www.microsoft.com/es-es/download/details.aspx?id=10019

Mi recomendación para casos como este, es no hacer uso de los "viejos" controles usados en el "antiguo" Visual Basic 6.0. Ah, ojo, si pagaste por ese archivo y esas macros y te respondieron eso de internet, sinceramente deberían devolverte el dinero. Un buen programador toma en cuenta todos los posibles riesgos.

Saludos]

Abraham Valencia

Nada agregue más referencias y sigue el error, actualmente estoy trabajando con windows 7 32bit y office 2010 32 bit, actualice los que me enviaste y nada.

No el archivo no es pago ni nada

Entre mis "marcadores" he encontrado una antigua conversación sobre un caso símil al tuyo y que no recordaba:

http://www.forosdelweb.com/f90/vba-common-controls-6-0-excel-2010-a-867271/

¿Qué podemos ir concluyendo?:

- Los Microsoft Common Dialog Control 6.0 (y otros) no son compatibles con ninguna versión de Office de 64 bits

- En versiones recientes de Office de 32 bits, por más que estén instalado/registrado, se verán en las referencias pero no podrán insertarse como objetos en el Excel (y otros)

- En algunas versiones de Office como el 2007 de 32 bits (no recuerdo si en el 2010, y menos en posteriores se podía o podría), creo (vagamente) recordar que sí podían usarse si a la vez se tenía instalado el Visual Basic 6.0 SP6 y la actualización acumulativa de Microsoft Visual Basic 6.0 Service Pack 6 (https://www.microsoft.com/es-ES/download/confirmation.aspx?id=7030)

Insisto en que no deberías intentar usar ese tipo de control; lo más probable es que quien haya trabajado el archivo tenga una versión antigua de Office (de 32 bits) y posiblemente instalado el VB 6.0 y actualizaciones.

Abraham Valencia

Dale voy a revisar y luego te comento

Hola, estuve instalado desde cero todo.

SO xp sp3 y office 2003, instale visual basic 6.0 y msdn librerías.

Volví a correr la macro y me sale ahora esto.

Que aplicaciones especificas faltaría instalara.

Gracias

Veo que estás usando un disco virtual con XP, el dilema que veo ahora es que el archivo en cuestión usa componente que no son compatibles con Office 2003 (Power Pivot). Y no, no hay forma de hacerlo compatible.

Ah, bueno, también te falta una versión más moderna de Microsoft ActiveX Data Objects, pero sí podrías probar con las que venían en Excel 2003 (creo que era la 2.8).

No lo tomes a mal, pero estás intentando usar una archivo que tiene componentes nuevos y antiguos, va a ser bien complicado que puedas usarlo en cualquier PC.

Abraham Valencia

Ha ok, y que sugieres que utilice office 2007 o 2010 para Power Pivot

A ver, mi opinión profesional es: No insistir con ese archivo y/o al menos modificarlo para que no use Microsoft Common Dialog Control 6.0.

Si insistes en él, y como ya he dicho, todo queda solo en probabilidades dado que por la antigüedad e incompatibilidad de esos controles, no puedo probarlos y no es que recuerde bien todo sobre ellos. La mejor opción, de insistir tú, es que la persona que creo el archivo te diga: Versión de Office que uso (incluyendo bits), versión de Windows, que confirme si tenía instalado VB 6.0. Una vez que te responda todo eso, tendrías que simular dichas características.

¿Cuáles creo que son? Office 2010 de 32 bits, complemento Power Pivot para Excel 2010, Windows XP SP 3 (32 bits), probablemente también VB 6.0 SP 6 (incluidos parches y actualizaciones posteriores). Eso.

Ah, ojo, así puedas simular ese ambiente y usar ahí el archivo, no te será útil en otras PC.

Abraham Valencia

Dale, voy a seguir probando y te estaré avisando.

Saludos

Hola, la empresa que nos dio el archivo nos comento que funcionaba en windows 10 y office 2010 y 2013, hice una virtual de windows 2010 pro 32bit y office plus 2010 32bit, he instale vb 6.0 msdn 6.0 power pivot 2010, pero que va sigue enfocando el mismo error, te paso la imagen y en referencia no muestra que falte algo.

1ro sale el primer cuadro, le doy aceptar y vuelve a salir, le doy aceptar y luego sale el cuadro de error 424, luego le doy a depurar y enfoca recuadro en amarillo.

Algo mas que pueda hacer?

¿El VB 6.0 tiene ya instalado el SP 6.0? Confirma eso. Ah, instala esto también después del SP 6:

https://www.microsoft.com/es-ES/download/confirmation.aspx?id=7030

Es una actualización del VB que ayuda a la distribución de componentes como el de tu dilema.

Luego también sigue estos pasos:

https://support.microsoft.com/es-es/help/2676583 

No importa que el enlace hable de otro control por si acaso, se aplica para el tuyo.

Un par de cosas más: Te comenté en uno de los mensajes anteriores, ese control puede fallar sin que aparezca "Falta" en las referencias. Segundo, no sé si el Windows 10 permitirá su uso, yo en programación no le creo a nadie hasta que me lo pruebe o se pueda probar (eso aplicaría yo para la empresa que mencionas).

Abraham Valencia

PD: Insisto en que dejes de lado ese control

Hola hice tal cual todo lo que de dijiste y bien avance bastante, pero ahora me sale este error, me imagino que me falta un aplicación para conectarme a la base de datos de la empresa que me paso el archivo.

Qué bueno que te va resultando.

Sobre el error, sí, normalmente ocurre cuando no se logra conectar a una base de datos. Posiblemente falte el Driver necesario, pero sin ver el código no podría decirte que falta.

Abraham Valencia

Bien, no se si quieres te envío el aarchivo o creo que es este código:

Sub Botón1_ToDo()
    Dim CodIC As String
    Dim StrSql As String
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    On Error GoTo VerError
    ActiveSheet.Range("B3") = ""
    ActiveSheet.Range("B4") = ""
    ActiveSheet.Range("B5") = ""
    ActiveSheet.Range("B6") = ""
    Set cn = New ADODB.Connection
    cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=INFOCENTRO;Data Source=INFOC001"
    CodIC = ActiveSheet.Range("B2")
    StrSql = "SELECT  CL.IC, CL.NOMBRE_IC, CL.TP_IMPUESTO, CL.CATEGORIA, CL.CC " & _
             "FROM [INFOCENTRO].[CLIENTES] CL " & _
             "WHERE CL.IC = '" & Right("0000000000" & CodIC, 10) & "'"
    Set rs = New ADODB.Recordset
    cn.CommandTimeout = 0
    rs.Open StrSql, cn, adOpenForwardOnly, adLockReadOnly
    If Not rs.EOF Then
        ActiveSheet.Range("B3") = rs(4).Value
        ActiveSheet.Range("B4") = rs(1).Value
        ActiveSheet.Range("B5") = rs(2).Value
        ActiveSheet.Range("B6") = rs(3).Value
    Else
        MsgBox ("Interlocutor Comercial: (" & CodIC & ") No existe.")
    End If
    rs.Close
    cn.Close
    MsgBox ("Datos Encontrados!")
    GoTo Finally
VerError:
    MsgBox ("Error de Conexión!" + Err.Description)
Finally:
    Set rs = Nothing
    Set cn = Nothing
End Sub
Sub Test()
    Dim fso As New FileSystemObject
    Dim drv As Drives
    Dim strText As String
    Dim i As Integer
    Set drv = fso.Drives
    i = 3
    For Each d In drv
        strText = "Drive: " & d.DriveLetter
        ActiveSheet.Range("H" & i).Value = strText
        i = i + 1
    Next
    MsgBox ("Listo!")
End Sub
Sub BuscarArchivo()
    frmImpComb.Show
End Sub

[Hola

Pues por lo visto necesitas conectarte a SQL Server y para ello debes tener como mínimo instalado un Driver ODBC para tal fin. Descarga alguno de la página de Microsoft. OJO, debes instalarlo/registrarlo en el PC Virtual, de lo contrario no servirá. Ah, me extraña tu "Data Source" pues parece que fuera una conexión local (en tu PC) y, de ser así ¿instalaste el SQL Server Express en tu PC y transfirieron la base de datos a ella? ¿O simplemente cambiaste el dato para enviarlo a aquí?

Abraham Valencia

NO, te lo pase tal cual, segun el archivo tiene un formulario para agregar una lista de deudores (que esa fue la que me ayudaste a resolver hace poco), y luego me imagino que se conecta a la base de datos de la empresa para sacar la informacion de los deudores y mostrar la deuda

Ajá, entonces tu PC, me imagino que del trabajo, está en red y el dato del "Data Source" es un servidor (o similar) de la red. Entonces necesitas que el administrador de la red ponga en red, valga la redundancia, a tu PC virtual; ah, y de todos modos descargar el Driver ODBC para conectarte a SQL Server.

Abraham Valencia

Dale, veo eso y te comento

Si no hay más dilema, sugiero cerrar la pregunta.

Saludos]

Abraham Valencia

¡Gracias!

Perdón por no responder, si la parte de conexión no esta habilitada, así que solo era el 1er macro. Gracias por la ayuda, saludos.

Al final funciono con windows 10 32bit y office 2010 32 bit, y VB 6.0 con librerías, power pirot, y todas las actualizaciones que sugeriste. Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas