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
[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
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
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
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
- Compartir respuesta
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.
- Compartir respuesta