¿Cómo quitar el Error de automatización 440 macros VBA?
Tengo un problema que lamentable no he podido resolver y estoy que tiro la toalla con mi proyecto. Cómo dice título se presenta un error en tiempo de ejecución específicamente en los ciclos for de mis formularios cuando trato de guardar un nuevo registro en una tabla ocasionando que se cierre inesperadamente la aplicación de excel. He modificado las sentencias de repente trabaja bien y luego cae en el mismo error como si fuera un virus, digo esto porque acabo de verificar en otro formulario dónde tengo otros registros y me ocurre el mismo error dónde todo marchaba bien.
PD. Me tiene frustrado está situación.
1 Respuesta
Si no pones una imagen del error o el código que causa el error, sera imposible ayudarte.
Este error ahora me sale en todos los botones donde tengo un ciclo for el cual uso para guardar las capturas en una hoja excel IMPORTANTE: LUEGO QUE SALE ESTE ERROR ENSEGUIDA SE REINICIA EL APLICATIVO DE EXCEL.
He revisado con detenimiento corriendo la Macro paso a paso y cuando cae ahi justo me da ese error.
Ayudenme por favor
Fíjate estimado esta es otra prueba que hice en una copia que tengo del archivo solo que esta vez el registro es de otro botón y me esta generando el mismo error... EN ESTE CASO NO HAY UNA SENTENCIA FOR NEXT, SIMPLEMENTE ASIGNO VALORES DE LOS CONTROLES A LAS CELDAS. Eso me esta sucediendo en todas lac copias
A simple vista no puedo identificar un problema, todo luce normal.
Creo que el error viene de la hoja y no del código, si puedes responde estas preguntas:
¿Estás trabajando con Tablas dinámicas?
¿Estás trabajando con Paneles inmovilizados? <- Esto tiende a causar este tipo de errores
¿Seria posible que compartieras uno de los archivos que te da el error? Súbelo a alguna nube y copia el link para descargarlo y poder revisarlo con más detalle.
Saludos.
De acuerdo a lo solicitado le adjunto lo siguiente:
https://drive.google.com/open?id=1Pj075yYtEYZ3V-gIz9QWSl37Y9L3cnGx
Al momento de ejecutar el archivo te sale el formulario principal sin mostrar las hojas, para acceder a ellas en el formulario en la parte superior izquierda encuentras 4 botones un de ellos el controlsticker te dice que se llama base de datos lo presionas y ahí ya te muestra las hojas y puedes acceder a la ficha programación. Agradezco de antemano tu ayuda
¿Puedes plantearme un escenario que yo pueda reproducir? Indícame como puedo llegar a reproducir el error, en qué formulario, que botón tocar, que dato introducir, a modo de ejemplo para hacer exactamente lo mismo que tu y ver si recibo el error yo también.
Viendo que esto me va a tomar mucho mas tiempo de lo que pudo otorgar, mi diagnostico mas rápido esta basado en una de las preguntas que te hice anteriormente:
¿Estás trabajando con Tablas dinámicas?
El problema se soluciona al convertir la tabla dinámica a rango regular.
Hay algo mal con tus tablas y no he podido identificar la razón, me parece que es un problema de diseño. No sé hace cuanto tiempo hiciste este archivo ni con que versión de Excel, pero tus tablas dinámicas no están funcionando como deberían. Ni siquiera funcionan con el objeto ListObject de VBA que fue lo primero que probé, lo que lo hace aun mas raro.
Solución:
Tan simple como dejar de usar tablas y usar rango regular.
¿Desventaja?:
Absolutamente ninguna.
Opinión personal y gusto personal:
No usar Tablas si tu proyecto esta basado en VBA. ¿Para qué? ¿Cuál es el punto de usar tablas si todo se maneja con UserForms y VBA? La combinación de ambas cosas es engorrosa desde mi punto de vista muy personal.
Hola Andy.
Primero que todo te agradezco por tu tiempo en ayudarme. Estoy usando tablas por la sencilla razón de que mas adelante pienso hacer un dashboard en base a la información que se guarde en ellas, por lo que voy a necesitar tablas dinámicas que aun no las he planteado como te diste cuenta, simplemente tengo tablas normales. Ahora bien, no soy experto en el uso de VBA este es mi primer proyecto en base a mis estudios autodidactas, ¿Que me recomiendas para luego plantear los indicadores? la idea es habilitar una pestaña para poder mostrarlos y ver el comportamiento.
Se me olvido mencionar tengo microsoft profesional plus 2016, comencé a hacerlo la semana pasada. Otra acotación realice un escaneo de mi Pc y note que tengo varios virus troyanos. ¿Esto afecta mi programa?
No creo que los virus tengan algo que ver. Mi recomendación seria que revises las tablas y de ser posible que las borres y las hagas de nuevo.
Como segunda recomendación, que va ligada a la primera, si vas a usar VBA con tablas, es preferible manipularlas con la clase ListObject. Así que te recomiendo leer e instruirte sobre el uso de ListObject en VBA ya que es la clase dedicada a la manipulación de tablas, te aportara mejor rendimiento.
¡Mil gracias Andy!
Ya tengo absolutamente todo claro, inclusive comencé a hacer el proyecto de nuevo para reestructurarlo mejor y si efectivamente hacer las cosas como deben ser manejar todo con la clase ListObject. Fuiste conciso y claro en tus recomendaciones y eso se merece una excelente valoración.
Dios te bendiga!!
Estimado Andy.
Comencé de nuevo el proyecto esta vez como debe ser, aplicando las clases correspondientes de ListObject pero lamentablemente se presento de nuevo el problema. Le adjunto el nuevo archivo para que lo revise por favor tiene muy pocas lineas de código. Guardo dos registros en la tabla y al tercero general el error.
https://drive.google.com/open?id=1MvDrdZiZyVzGBYe3MV1JznuQl4_4i2DK .
Quedo atento a sus comentarios.
PD. TENGO MUCHO DOLOR DE CABEZA CON ESTO.
¿Sera que el problema es mi versión de excel?
Ya lo probé, y sigue dando el problema, honestamente no tengo idea de por que ocurra, revise el código y no es la mejor forma de hacerlo pero tampoco está mal, debería funcionar, el problema definitivamente no esta en la sintaxis de tu código VBA. El problema esta viniendo de la tabla o de la hoja. No se de que manera creas la tabla, las tablas se crean con simplemente presionar Ctrl+T.
Estuve leyendo e investigando sobre este error. De lo que he podido investigar mi conclusión es que se trata de un bug de Microsoft, y talvez si tenga que ver con tu versión, no seria la primera vez que esto sucede.
Lo único que pude hacer por ti, es crear mi propia "mini" versión de tu archivo, con la tabla creada por mi, y el código VBA escrito por mi. Es un archivo totalmente fresco y nuevo, podrías continuar en él editando lo que hice, o tomar la idea y seguir intentándolo. A mi me funciona a la perfección. Los registros que verás fueron creados por el boton GUARDAR. En el codigo te comenté que hace cada cosa, y está escrito con las mejores practicas de programación posibles a mi entender.
Descargalo aquí: Descargar archivo Excel
Andy
Bueno tome la decisión de instalar otra versión del Office, ya veremos cómo trabaja y si voy a revisar tu programación como te mencioné en comentarios anteriores es mi primer proyecto con eso obtengo más conocimiento al respecto. Mil gracias por tu ayuda y tú aporte en la mini versión Andy...
Bendiciones!
Jesús.
- Compartir respuesta