• 👏 Bienvenido a nuestra comunidad Excel

    ¿Todavía no estás registrado? 😲

    Registrate gratis aquí y podrás:

    💪 Hacer preguntas a los expertos
    ⬇️ Descargar ejemplos y plantillas
    🏅 
    Acceder a contenidos premium

punto de interrupción fantasma???

ppinedo

Member
hola a todos,
alguna vez me ha pasado que para depurar el código utilizo puntos de interrupción, pero cuando salgo del libro y vuelvo a ejecutar la macro se sigue parando en el mismo punto de antes(ahora sin punto de interrupción, claro) ¿a alguien mas le ha pasado? ¿Por que sucede esto y como lo evito/arreglo?

Gracias foreros, saludos :)
 

Adrian

Well-known member
Hola!
Espero interpretar bien lo pedido:

Puede darse el caso que un código se detenga y muestre una ventana de código en interrupción, esto se debe que anteriormente se pulsó Crtl+ Bloq, ya sea por que se entro en bucle infinito y no hubo otra salida. Se arregla poniendo en la macro
Application.EnableCancelKey = xlDisabled pero es una técnica "super peligrosa", de resultar existosa en la ventana inmediato poner Application.EnableCancelKey = xlInterrupt

Prueba en la ventana de inmediato:
Application.EnableCancelKey = xlInterrupt
 

Cacho R

Well-known member
Hola! ppinedo (y Adrián)
Eso ocurre habitualmente. ¿Sabés cuándo ocurre "eso"?... Analiza:
  1. Empiezas a evaluar que hace cada línea de tu código a partir del punto de interrupción, ¿Verdad?...
  2. Una vez que viste "lo que tenías que ver" cortas la inspección, arreglas lo que te tengas que arreglar, ejecutas normalmente el código... ¡Y se te frena!, ¿Verdad?...
  3. Pues las veces que me pasó advertí que el "problema" (que no es tal, claro) reside en el anterior punto 2. O sea: en lugar de "cortar" el procedimiento debes "darle" a la tecla F5 para que acabe normalmente el código (aunque termine con un error).
  4. Si haces eso ya no se te frenará en los puntos de interrupción fijados (y quitados).
¿Se entendió?...
Saludos, Cacho R.
 

ppinedo

Member
Hola @Cacho R,

no es algo grave(curioso si) pero me ha dado algun susto al pararse de repente sin haber ningun punto de interrupcion en el código
hare como dices en tu post (y), pero entonces segun el punto 3 de tu post ¿he de terminar la ejecucion con F5?¿estas paraas se mantienen tras apagar el sistema?

Gracias Cacho R,
saludos
 

eavjperu

Active member
Ese dilema ha sido reportado hace años a Microsoft e igual se sigue repitiendo en las distintas versiones de Office. Soluciones hay varias, como las planteadas aquí. ¿Explicaciones? Solo hipótesis que me llevan a decir siempre: Otro bug sin resolver.

Saludos.

Abraham Valencia

https://abrahamexcel.blogspot.com/
Lima, Perú
 

Héctor Miguel

Well-known member
por si a alguno le pudiera resultar "interesante" (o de utilidad) ?...

cuando suceden compilaciones/depuraciones de codigos (ya sea en tiempo de diseño/ejecucion)
- (p.ej. cuando saltan errores durante las pruebas) y se hacen las correcciones pertinentes Y SE GUARDA el archivo
- (eventualmente) llegaran a ser causa de un crecimiento "inexplicable" de los archivos (si esto sucede con frecuencia)

una vez alcanzado un (cierto) grado/nivel de (posible) corrupcion (por la repeticion de estos sucesos)...
- solo queda una (re)construccion... "partiendo de cero" (o sea, crear nuevamente los objetos y los codigos)

dicho sea de paso, la instruccion "option explicit" para provocar errores por variables no declaradas...
(debiera ser tratada con precaucion, atendiendo a lo anterior ?)
 

Cacho R

Well-known member
... al pararse de repente sin haber ningun punto de interrupcion en el código.
No sé si "la tenías", ppinedo, pero hay dos formas más de detener el código para inspeccionarlo. A saber:
  • Debug.Assert False
  • Stop
Cuando la ejecución llega a una de estas líneas verás que VBA las resalta de amarillo como si hubieses puesto un punto de interrupción mediante F9.
Cuando ya no te hace falta esa interrupción pasas a eliminar la línea: nunca me ha pasado que -tras la eliminación- VBA "se frene sin que se lo pidan".
¡Son otras maneras sin "fantasmas"!...

Saludos, Caccho R.
 

ppinedo

Member
precisamente ayer probe con lo que me decias Cacho R, de terminar la ejecucion con F5, pero se se seguia parando en ese pento sin haber bingun punto de parada ahi(incluso llegue a reiniciar el PC por si se quedo algo en memoria)(n), asi que debe haber algo mas

Creo que la solucion al problema tiene que ver con lo que comento @Adrian, aunque a mi no me aparece ninguna ventana de código en interrupción, simlemente se para en el código.

Lei por internet que la solucion puede ser pulsar "Ctrl + Break" sobre el punto invisible, pero ¿en un teclado español que tecla es esa?¿Ctrl-c?
https://www.businessprogrammer.com/code-execution-has-been-interrupted/
 

Cacho R

Well-known member
... pero se se seguia parando en ese pento sin haber bingun punto de parada ahi
¡No puede ser!... (Jajjjajjaja :mad: :love: ). Intentá dos cosas:
  • Por un lado, subí al Foro el texto de esa línea en la que se te para el código: desde 5 líneas antes y hasta 5 líneas después (o más líneas si te parece conveniente).
  • Esa línea en la que se te frena la ejecución:
    • Por un lado: "comentariala" (com Rem o con el apóstrofo ' )
    • Y por otro: volvela a escribir inmediatamente después de la línea conflictiva (no la "copies y pegues" sino "escribila manualmente").
    • Y corré la macro.
  • Y ya que estamos: ¿Qué hace esa línea en la que se te para el código?
Evaluemos...
Saludos, Cacho R.
 
Arriba