Saltar al contenido

Microsoft excel ha detectado un problema y debe cerrase (Excel y vba)


Recommended Posts

publicado

Buenos dias.

Tengo un programa de gestion de almacen en VBa y Excel.

El programa lee el archivo excel, mostrando Referencia, cantida y descripcion, y el usuario confirma que los datos son correctos o no.

El problema que tengo es que en archivos con muchas referencias(mas de 75), al llegar a numero 75, se me cierra excel dandome el error de "MIcrosoft Excel ha detectado un problema y debe cerrarse"

Como ya os he comentado, me pasa a partir de la linea 75. Si cierro el programa y vuelvo a abrirlo no da error, por lo que creo que es algo de memoria.

Me podriais ayudar??

Muchas gracias....

p.d. He intentado adjuntar el programa pero no puedo, asi que si alguien piensa que puede tener la solucion, mandadme un privado con el email para poder enviarlo

Invitado sacfa
publicado

Ten mucho cuidado tus macros estan mal, por lo que debes corregirlo pues aunque no me lo crear yo acabe mi discu duro de mi portatil la pc se travo y la deje todo una noche para que se destravara pero fue en vano la tuve que apagar pero para mi sorpresa el disco trono se aruino completamente, asi reestructuras todas tus macros porque ese problemas es por la mala estructura de tus macros.

publicado

Hola:

Te adjunto e-mail para que subas el archivo.

antonio.ayalaarrobamundo-r.com

Sustituye la palabra arroba por su símbolo correspondiente.

Saludos

PD:

Esta dirección de correo electrónico se notifica únicamente para el fin especificado.

No se responderá a ningún mensaje recibido en esa cuenta.

publicado

Hola:

Precisa un poco mas el error.

¿En que formulario? ¿Cual es la secuencia de acciones hasta llegar al error?

¿ Cual es el último botón pulsado y con que referencia ?........

Saludos

publicado

Hola

El error me da cuando llego a la linea 75, mas o menos.

No tiene que ver el pulsar ningun boton en especial, en el formularioTe voy a mandar un archivo nuevo llamado WS07859.

Yo lo que hago es:

Primero el usuario: prueba.

Despues le doy a procesar pedido y meto WS07859.

Depues le doy al 100 % y empiezo a meter la referencias.

Como el archivo WS07859 lo he creado yo misma para meter la referencias mas rapido, lo que hago es copiar los primeros caracteres de la referencia "0501 002 032 "(Con espacio incluido pero sin comillas" y despues meto el 01, 02, 03, correspondiente.

En la pantalla de confirmar cantidad, le doy a si siempre puesto que el codigo del "si" o del "no", es practicamente el mismo.

Cuando he llegado mas o menos a la linea 75, alguna menos si me he confundido al meter la referencia, me da el error de Windws tiene que cerrarse.

Yo pienso que puede ser un error de codigo, muchas lineas para una chorrada, falta de organizacion, o algo asi.

Creo q esta todo explicado, si tienes algun problema

Un saludo

publicado

Amiga, tienes un "pollo montao" con la navegación entre formularios, ¡ "tela marinera" !.

Estoy casi convencido que hay un problema de estructura con tanto formulario oculto, estoy rehaciendola, un poco a ciegas por desconocimiento funcional del tema, pero creo mañana por la tarde te podré ofrecer una alternativa a lo que tienes.

Saludos

publicado

Hola:

Quizás he tocado alguna cosa que no debía, por lo que debes repasar todo el circuito.

Yo no he conseguido reproducir el error, pero me parece recordar que alguna vez que me había pasado, se debía a problemas con la instrucción SetFocus, no tengo claro su comportamiento en formularios ocultos.

Bueno, resumiendo, he sustituido los Hide por Unload para descargar la memoria, de paso la mayoría de SetFocus ya no son necesarios.

He pasado los datos necesarios de los formularios a variables globales (Public), ya que al usar Unload en lugar de Hide perdemos los datos

He reestructurado un poco la navegación, aquí es donde puede haber algún problema, asegúrate que el pedido se guarda correctamente en todas las condiciones.

Este es el enlace del archivo:

https://dl.dropboxusercontent.com/u/241435/Nav%202.0%20I.xlsm

Ya me contarás como va.

publicado

Hola,

Estoy repasando todo el circuito, y me ha surgido una duda.

Que significa esto de saltar??

'Prevenir rebote del evento

If Saltar = True Then Exit Sub

Saltar = True

Aparte, has cambiado todos los Form1.hide por unload me, el problema esq con el evento unload me entra en el proceso UserForm_QueryClose y me da error.

Se te ocurre alguna forma de solucionarlo.

gracias!!!

publicado

Al descargar el formulario (Unload) se ejecuta de forma automática el evento Exit del control que tiene el foco, por lo que si dentro de ese evento, descargamos el formulario, se ejecutará de nuevo el evento.(Efecto rebote).

En cuanto lo del error del QueryClose, te digo algo a la tarde.

publicado

Estimados amigos tengo el mismo error en mi aplicacion que estoy usando, el tema es el siguiente: https://www.ayudaexcel.com/foro/macros-programacion-vba-10/error-inesperado-28355/

Hasta ahora no logro encontrar cual sea el error emitido por excel, la cual no se si sea causa de falta de memoria u error de codigo.. adjunto archivo

https://mega.co.nz/#!NQx2mQaJ!OmVXhTs8R0Izm1wTjlYc-lvAjBhkYilXR52-oO-2Q8o

User: Administrador

Pass: 45986146

publicado

Hola Betty:

Todos los eventos QueryClose deberían estar así:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If CloseMode = 0 Then [COLOR=#008000]'Cuando se intenta cerrar desde el formulario[/COLOR]
MsgBox "Use el botón Salir del formulario", vbInformation, " Botón X No Disponible "
Cancel = 1 [COLOR=#008000]'No efectúa la descarga del formulario[/COLOR]
End If

End Sub


[/CODE]

En cualquier caso dime que error te da, en que formulario y le echare una mirada por si me hubiese cargado algo indebidamente.

[i][b]Unload Me[/b][/i] pasa por el evento [i][b]QueryClose [/b][/i]con el parámetro [i][b]CloseMode = 1[/b][/i], por lo que es imposible que se produzca un error por ese motivo.

Archivado

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

×
×
  • 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.