Saltar al contenido

Error  -2147352571 (80020005) al ejecutar formulario


aaquino

Recommended Posts

publicado

Buen día estimado grupo,

Estoy teniendo un problema que no logro encontrar solución.

La cuestión es que el archivo que estoy trabajando, me está dando un problema al cargar un formulario de búsqueda de información. Este form lo que hace es únicamente una búsqueda en una base de datos, en el cual hay un combobox, que se llena con "datos únicos" de la base de datos.

El código que uso para cargar el combobox es el siguiente:

Private Sub cbx_Cliente_Enter()
Dim Fila As Long, Final As Long
Dim Registro As Integer
Dim i As Long

For Fila = 1 To cbx_Cliente.ListCount
    cbx_Cliente.RemoveItem 0
Next Fila

Final = Hoja2.Range("A" & Rows.Count).End(xlUp).Row

With Hoja2
    For i = 2 To Final
        Registro = WorksheetFunction.CountIf(.Range(.Cells(1, 3), .Cells(i, 3)), .Cells(i, 3))
        If Registro = 1 Then
            Me.cbx_Cliente.AddItem .Cells(i, 3)
        End If
    Next i
End With

End Sub

Al ejecutar el llamado del formulario en la PC donde fue creado el archivo no da problema. El problema está al momento de ejecutarlo en otra PC, ya que marca el error  -2147352571 (80020005), y marca la siguiente línea en amarillo.

Me.cbx_Cliente.AddItem .Cells(i, 3)

Me podrían indicar dónde puede estar el error. Adjunto el archivo para que me puedan ayudar.InterAction - Ingreso de oportunidades.xlsmInterAction - Ingreso de oportunidades.xlsmInterAction - Ingreso de oportunidades.xlsm

InterAction - Ingreso de oportunidades.xlsm

publicado

Hola aaquino, no se que puede estar pasando en tu formulario pero si te puedo decir que lo he probado en dos equipos diferentes y funciona perfectamente, también lo he probado en una máquina virtual en un mac y  también funciona perfectamente no obstante seguiré investigando por si encuentro la solución. Un saludo

publicado

@JSDJSD te agradezco mucho tu ayuda. Quedo atento a tus comentarios, ya que el mismo archivo que he subido al foro, me está dando otro error, en otra PC que lo probé, y esta vez lo que está haciendo es que si carga el formulario, pero al presionar el boton "Aceptar", éste debería mostrar información en la hoja "Data", de acuerdo a la selección del usuario, y luego hacer salir del formulario, sin embargo, en la última PC que lo probé no muestra la información ni sale del formulario, es como si el botón no tuviera programación alguna.

Es bien raro, pero posiblemente sea algo mal programado, o no sé.... me tiene algo confundido esto.

Quedo atento a tus comentarios, y a los de cualquier otro usuario que me pueda ayudar.

publicado

Hola

El archivo puede ser el mismo, pero ¿la cantidad de datos también? El que has dejado aquí tiene un solo registro ¿el del dilema también? Otra cosa, en la PC que mencionas, di paso a paso qué es lo que haces para que dé el error. OJO, paso a paso. OJO, con lo del número de registros y ¿que Excel es?

Abraham Valencia

publicado

Gracias por tu ayuda @avalencia

Te comento, el archivo que he cargado aquí es el mismo que he usado de prueba en otras PC, con los mismos datos, a lo sumo se agregan 1 o 2 líneas solo para ver que el botón "Save" sí funcione.

La versión de Excel es Office 365, pero está instalado en la PC, o sea, NO usamos un navegador para usar Excel. 

El error en pantalla salta al dar clic en el botón de la hoja "Data" que dice "Find", al solo dar clic da el error. Este botón hace un llamado a un form, el cual no se inicializa, ya que detecta un error en ejecución

Como mencioné, hay otro error, y es que en algunas PC sí se inicializa el form, sin embargo el botón "Aceptar" no hace lo que debería. El proceso que corre este botón es, al seleccionar algo del listbox debería desplegar la información en la hoja "Data", si no se ha seleccionado algo en el listbox, debería enviar un mensaje donde indica que se debe seleccionar algo. 

Al fin, les comento, en conjunto con el de sistemas hemos detectado la causa del error, mas no así la solución.

El problema está en que en mi PC tengo configurado Office en "Español", y la mayoría de mis compañeros tienen configurado Office en "Inglés". Vi que en mis macros yo hago un llamado a las hojas, y las nombro tal como me aparecen a mí: "Hoja1" y "Hoja2"

Vi esto y pensé que la solución era fácil, y decidí cambiar el nombre en las propiedades de cada hoja al nombre "HojaData" y "HojaBD", respectivamente, y posterior a ello hacer los cambios respectivos en toda la programación, esto no funcionó.

Cambié, y ahora en lugar de hacer el llamado directo a las hojas, lo hago por medio de la función "Sheets("Data")" y "Sheets("BD"), respectivamente, y posterior a ello hacer los cambios respectivos en la programación, esto tampoco me funciona...

La verdad es que ya no sé qué hacer.... alguien me puede ayudar con esto. Gracias

publicado

Pues no, los nombres de los módulos de las hojas no tienen nada que ver. Esos nombres, por cierto, son creados (junto con los archivos) basados en el idioma del Excel desde el que se hicieron, pero dichos nombres de módulos se mantienen... como suena enredado, pues si yo creo un libro de una hoja, su módulo se llamará "Hoja1" y si no lo cambio ese nombre se mantendrá así se abra el archivo en Excel en ingles o alemán o lo que sea. Yo en mi PC tengo archivos creados en ingles cuyos módulos están en dicho idioma y hago referencia a ellos sin dilema. 

Prueba algo más simple, en donde tienes esto:

valor = Hoja1.Range("B" & i).AddressLocal

Cámbialo por esto:

valor = Hoja1.Range("B" & i).Address

Comentas

Abraham Valencia

publicado

Pues nada, todo bien. Ah, ojo, el archivo que enviaste tenía las macros con clave, pude desprotegerlo, pero para la próxima sugiero no protegerlo para que todos puedan intentar ayudar.

Volviendo al dilema, como te repito, no tengo problema alguno. Para estar seguros ¿el error lo da en TODAS las PC con Office en inglés o en alguna o algunas en particular? Si es todas ¿qué Office es y de cuántos bits? ¿Windows o Mac? Si es en una o algunas ¿qué características en especial tiene su Office? ¿todas tienen instalación completa del Office? ¿alguna del error es Office 365 de las versiones Hogas o esas? Etc. Ojo a esos detalles

Abraham Valencia

publicado

Que tal @avalencia

Te comento, todas las PC tienen Office 365 completo, son Windows. El error me da en todas las PC que están en inglés, ya que como les comenté anteriormente, hicimos pruebas con el de sistemas, él tenía el office en inglés y daba uno de los errores, por lo que le cambió el idioma a su office y todo le fue perfecto. De ahí fue que pensamos que el error estaba en que yo había programado en un office en español y que por eso no corre en una PC con office en inglés.

Creo que el error estará en la programación del evento "Enter" del combobox, ya que como les digo en algunas máquinas ahí es donde me dice que está el problema, pero no sé si es ahí o en otro lado.

Adjunto nuevamente el archivo sin contraseña, fue mi error no haberla quitado.

InterAction - Ingreso de oportunidades.xlsm

publicado

Hola nuevamente. Al menos en Excel 2019 (32 y 64 bits) y Excel 2013 no he podido reproducir el problema, pero no hay que tirar la toalla.

Veamos, yo insisto en que no es problema del idioma, y al no ser MAC ninguna máquina del error, descartamos el "clásico" dilema del VBA que tienen. ¿Entonces qué ocurre? Por lo que entiendo el tipo de Office 365 es el mismo para todas esas maquinas y al estar seguro que la instalación de todas es completa, pues "algo" se instalo en todas por igual (¿o se dejó de instalas?).

Anda a una de las PC del errror, abre el archivo, y para descartar que sea "algo" que no se instaló, verifica si en las referencias del VBA alguna está precedida de la palabra "Missing". Yo creo que no (al ser objeto "básicos" los que usas), pero mejor asegurar por si acaso.

Ahora mira los Complementos instalados y activados, así como los Complementos COM. Por favor, menciona aquí todos (por grupo). Creo que por ahí sí debe estar el dilema.

Comentas

Abraham Valencia

publicado

Saludos @aaquino, revisa el anexo en las PC que dices que tienes problemas

Yo creo que el problema son los objetos incrustados (los botones y la lista de abajo), yo desde hace años que trato de no usarlos ya que me han dado muchos problemas cuando hay cambios de versiones de Excel, los usos cuando es estrictamente necesario, del resto no

prueba a ver, yo los cambie por unas simples imagenes y le asigne una macro

InterAction - Ingreso de oportunidades.xlsm

publicado

Muchas gracias compañeros,

Haré las revisiones que me comentan, y también probaré con el archivo que me compartieron, y cualquier cosa les comento.

Solo les pido de favor que no cierren el tema, ya que actualmente no me encuentro en la oficina y regreso hasta el lunes, por lo que no podré hacer las pruebas sino hasta ese día.

publicado

Buen día compañeros, perdón, es que se me complicó un poco el tema... no andaba de vacas, jajaja, es que por mi trabajo me toca viajar un poco, y por lo mismo hasta hoy pude regresar a la oficina.

Hice pruebas en otras PC, con ambos archivos, haciendo los cambios que me sugirieron y revisando las librerías, pero el tema está en que en algunas el archivo funciona perfectamente, y en otras no.

Saber qué será, seguiré investigando y veré si logro solucionarlo, o sino, tendré que buscar otro método para la búsqueda.

Cualquier cosa les estaré informando.

Por el momento pueden cerrar el tema, ya que no es problema del archivo sino de las máquinas de la empresa.

Agradezco mucho su ayuda.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      28

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    1    1

  • Crear macros Excel

  • Mensajes

    • Hola nuevamente. Por eso la importancia de lo que mencionas tú como "ruta relativa". Tal cual comentas, y aún sin llegar a algunos detalles importantes para ayudarte, en realidad tal cual te comenté le día miércoles, pues sí podías hacer como comentabas, era cosa de obtener los Id de Windows (como tú los llamas) y la ruta de OneDrive en casa usuario y eso sí se puede obtener con VBA y luego pasarlo a PQ, pero medio que te cerraste en que "PQ no puede trabajar con rutas relativas", cosa cierta pero siempre hay formas. Si SAP puede o no guardar en OneDrive o SharePoint, pues si está mapeado en la PC ¡claro que se puede! Pero bueno, creo que si te es útil tu propia propuesta ¡avanza con eso!
    • Perdona @Abraham Valencia pero he estado liado estos días. En realidad todo el problema se reduce a estos dos problemas: Problema 1: El script que "fabrica" SAP y que luego "pego" en la macro, no es capaz de  guardar archivos en SharePoint. He estado buscando, y en realidad muchas personas tienen ese problema (no poder guardar un Excel en SAP a través de VBA). Eso muy probablemente sean problemas de permisos, que no puedo cambiar (no soy administrador de nada). Como no puedo solucionarlo así, paso al plan B, que es guardar en Excel que me genera SAP en el ordenador de cada usuario que ejecute la plantilla (y que sí está guardada en SharePoint), para después con PowerQuery llamar a ese Excel (el export). Para ello, pretendo guardar el export, en la ruta relativa "C:\..\..\..\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" donde los \..\..\..\ saltan las rutas personales de cada usuario (tipo C:\users\IDusuario\). Eso lo hace bien, y el archivo se guarda en la ruta de cada usuario que lo usa, pero surge el problema 2 Problema 2: PowerQuery no trabaja con rutas relativas del tipo  "C:\..\..\..\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" necesita que sea del tipo fija "C:\users\IDusuario\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" pero claro, IDusuario es diferente para cada usuario.   Pero escribiendo todo esto, creo que he dado con una posible solución, no grabar el export en una ruta de usuario, sino en una en la raiz de C:, que siempre será igual para todos los usuarios, del tipo C:\Sap\export.xlsx que seria igual en todos los ordenadores. Asi sí podría decirle a PowerQuery que vaya siempre a la ruta C:\Sap\ que existirá en todos los ordenadores. Mañana intentaré hacer pruebas, aunque mi solución ideal seria que se pudiera guardar en el SharePoint. Saludos.
    • Hola La opción brindada por @torquemada es correcta, funciona, pero hay algunos inconvenientes que (desde mi punto de vista) no la convierten en mi primera elección. Los inconvenientes son: Tendrías que ir columna por columna haciendo los reemplazos, claro que no se harían a mano sino que utilizarías la opción reemplazar o la opción texto en columnas, aun asi demorará un poquito y será trabajoso. Cada vez que descargues otro listado, tendrás que volver a realizar los reemplazos. Me parece una mejor propuesta lo siguiente: Descarga los movimientos a un archivo de Excel Desde tu control de pagos (otro archivo) cargas los movimientos del archivo descargado mediante Power Query Power Query hará los reemplazos y reconocerá todo correctamente (sin que tengas que hacer nada especial) Cuando descargues los movimientos un día posterior, solamente tendrás que hacer clic en "Actualizar" y todo funcionará en automático
    • Hola a todos, Efectivamente, me temo que tal como trabajan las funciones =HOY() y/o =AHORA() (volátiles), sólo con macros puedes obtener soluciones. Un recurso pedestre podría ser, cada vez que quieras que se fije un dato, te sitúes en esa celda y pulses F2, F9 e INTRO.  Pero claro, puede ser un inconveniente si hay que hacerlo repetitivamente en muchas ocasiones,.............. en fin, lo comento sólo como posibilidad. Saludos,
    • Hola nuevamente, mi duda sigue siendo la ruta, o rutas, finales que quedan, esas que llamas "relativas"; igual por si acaso pon 3 o 4 de esas, tal cual son y/o se ven en el explorador de cada PC y, de ser posible, en cualquier otro "lado" en que las veas.
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.