DETENER MACRO ??

29/04/2009 - 20:50 por Orfao | Informe spam
Hola Grupo !
Como detengo la ejecucion de una macro al cambiar el valor de una celda en
particular ?
El problema es el siguiente
tengo un libro con varias hojas en las que sus datos se relacionan (las
formulas)
al ejecutar una macro que me modifica varuos valores de las diferentes hojas
estas se van recalculando y al finalizar la macro se actualiza la pantalla.
el hecho es que en alguna parte del codigo me genera un error y por lo
complicado de ese cogigo me es imposible identificar el problema. es por ello
que se me "ocurre" que deteniendo la macro justo al momento de que la celda
donde se produce el error cambie esta macro se detenga para asi poder
depurarla.
Alguna idea/sugerencia/solucion ???
Gracias..
Me alimento del conocimiento de todos

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/04/2009 - 22:29 | Informe spam
hola, moises !

al ocurrir un error en tiempo de ejecucion de una macro, puedes pulsar el boton "depurar"
(a menos que tu proyecto de macros este protegido contra visualizacion si es asi, desprotegelo)
lo que te lleva a la linea que origino dicho error y desde el editor de vba puedes "ver" el valor de las variables
(simplemente posicionando el puntero "sobre" el nombre de alguna variable dentro de ese procedimiento)

saludos,
hector.

__ OP __
Como detengo la ejecucion de una macro al cambiar el valor de una celda en particular ?
El problema es el siguiente
tengo un libro con varias hojas en las que sus datos se relacionan (las formulas)
al ejecutar una macro que me modifica varuos valores de las diferentes hojas
estas se van recalculando y al finalizar la macro se actualiza la pantalla.
el hecho es que en alguna parte del codigo me genera un error
y por lo complicado de ese cogigo me es imposible identificar el problema.
es por ello que se me "ocurre" que deteniendo la macro justo al momento de que la celda
donde se produce el error cambie esta macro se detenga para asi poder depurarla.
Alguna idea/sugerencia/solucion ???
Respuesta Responder a este mensaje
#2 Orfao
30/04/2009 - 03:23 | Informe spam
Hola Hector !
Estamos claros en eso...
Tal vez no me explique bien..
El problema es que en varias partes del codigo copio y pego datos a otras
hojas
y luego que he copiado esos varios datos "un looop",
al finalizar la macro (No se detiene" en realidad no es un error sino que me
coloca uno de los datos en una ubicacion (celda) no deseada" ) por eso te
digo que debo interceptar el codigo justo cuando esa celda cambie. como lo
logro ??
Gracias.

Me alimento del conocimiento de todos


"Héctor Miguel" wrote:

hola, moises !

al ocurrir un error en tiempo de ejecucion de una macro, puedes pulsar el boton "depurar"
(a menos que tu proyecto de macros este protegido contra visualizacion si es asi, desprotegelo)
lo que te lleva a la linea que origino dicho error y desde el editor de vba puedes "ver" el valor de las variables
(simplemente posicionando el puntero "sobre" el nombre de alguna variable dentro de ese procedimiento)

saludos,
hector.

__ OP __
> Como detengo la ejecucion de una macro al cambiar el valor de una celda en particular ?
> El problema es el siguiente
> tengo un libro con varias hojas en las que sus datos se relacionan (las formulas)
> al ejecutar una macro que me modifica varuos valores de las diferentes hojas
> estas se van recalculando y al finalizar la macro se actualiza la pantalla.
> el hecho es que en alguna parte del codigo me genera un error
> y por lo complicado de ese cogigo me es imposible identificar el problema.
> es por ello que se me "ocurre" que deteniendo la macro justo al momento de que la celda
> donde se produce el error cambie esta macro se detenga para asi poder depurarla.
> Alguna idea/sugerencia/solucion ???



Respuesta Responder a este mensaje
#3 Héctor Miguel
30/04/2009 - 04:14 | Informe spam
hola, moises !

Estamos claros en eso...
Tal vez no me explique bien..
El problema es que en varias partes del codigo copio y pego datos a otras hojas
y luego que he copiado esos varios datos "un looop", al finalizar la macro
(No se detiene" en realidad no es un error sino que me coloca uno de los datos en una ubicacion (celda) no deseada")
por eso te digo que debo interceptar el codigo justo cuando esa celda cambie. como lo logro ??



- una opcion es colocar un punto de inspeccion en la linea donde se realiza el avance
(haz un clic en el borde -gris- al lado izquierdo precisamente en esa linea de cdigo)
cada vez que la ejecucion alcance ese punto, se detiene, muestra la linea de inspeccion, y para continuar pulsas {F8}

- otra alternativa pudiera ser la emision de puntos con la informacion "relevante" (variable, ciclo, valores, celda, ... ???)
ya sea en la ventana de inmediato: Debug.Print (que ?), en un msgbox, en un rango de celdas, ???

- (creo que) esta ultima opcion seria mas util en caso de que tu "loop" sea de varios ciclos ({F8} en cada uno de ellos ?)

saludos,
hector.

__ previos __
al ocurrir un error en tiempo de ejecucion de una macro, puedes pulsar el boton "depurar"
(a menos que tu proyecto de macros este protegido contra visualizacion si es asi, desprotegelo)
lo que te lleva a la linea que origino dicho error y desde el editor de vba puedes "ver" el valor de las variables
(simplemente posicionando el puntero "sobre" el nombre de alguna variable dentro de ese procedimiento)

__ OP __
> Como detengo la ejecucion de una macro al cambiar el valor de una celda en particular ?
> El problema es el siguiente
> tengo un libro con varias hojas en las que sus datos se relacionan (las formulas)
> al ejecutar una macro que me modifica varuos valores de las diferentes hojas
> estas se van recalculando y al finalizar la macro se actualiza la pantalla.
> el hecho es que en alguna parte del codigo me genera un error
> y por lo complicado de ese cogigo me es imposible identificar el problema.
> es por ello que se me "ocurre" que deteniendo la macro justo al momento de que la celda
> donde se produce el error cambie esta macro se detenga para asi poder depurarla.
> Alguna idea/sugerencia/solucion ???
Respuesta Responder a este mensaje
#4 Orfao
30/04/2009 - 13:57 | Informe spam
Hola Hector !

la pregunta mas directa seria:
como puedo "detectar" en tiempo de ejecucion , cuando "cambie" el valor de
la celda F1 de la Hoja1
tal vez en el modulo de la hoha en el evento change ??
el probleba es que en algunas partes de las macros utilizo enableevents=false
como creo un punto de inspeccion para esa celda ?? como detengo la ejecucion
al cambiar el valor de la celda ???
Gracias..
Me alimento del conocimiento de todos


"Héctor Miguel" wrote:

hola, moises !

> Estamos claros en eso...
> Tal vez no me explique bien..
> El problema es que en varias partes del codigo copio y pego datos a otras hojas
> y luego que he copiado esos varios datos "un looop", al finalizar la macro
> (No se detiene" en realidad no es un error sino que me coloca uno de los datos en una ubicacion (celda) no deseada")
> por eso te digo que debo interceptar el codigo justo cuando esa celda cambie. como lo logro ??

- una opcion es colocar un punto de inspeccion en la linea donde se realiza el avance
(haz un clic en el borde -gris- al lado izquierdo precisamente en esa linea de cdigo)
cada vez que la ejecucion alcance ese punto, se detiene, muestra la linea de inspeccion, y para continuar pulsas {F8}

- otra alternativa pudiera ser la emision de puntos con la informacion "relevante" (variable, ciclo, valores, celda, ... ???)
ya sea en la ventana de inmediato: Debug.Print (que ?), en un msgbox, en un rango de celdas, ???

- (creo que) esta ultima opcion seria mas util en caso de que tu "loop" sea de varios ciclos ({F8} en cada uno de ellos ?)

saludos,
hector.

__ previos __
>> al ocurrir un error en tiempo de ejecucion de una macro, puedes pulsar el boton "depurar"
>> (a menos que tu proyecto de macros este protegido contra visualizacion si es asi, desprotegelo)
>> lo que te lleva a la linea que origino dicho error y desde el editor de vba puedes "ver" el valor de las variables
>> (simplemente posicionando el puntero "sobre" el nombre de alguna variable dentro de ese procedimiento)
>>
>> __ OP __
>> > Como detengo la ejecucion de una macro al cambiar el valor de una celda en particular ?
>> > El problema es el siguiente
>> > tengo un libro con varias hojas en las que sus datos se relacionan (las formulas)
>> > al ejecutar una macro que me modifica varuos valores de las diferentes hojas
>> > estas se van recalculando y al finalizar la macro se actualiza la pantalla.
>> > el hecho es que en alguna parte del codigo me genera un error
>> > y por lo complicado de ese cogigo me es imposible identificar el problema.
>> > es por ello que se me "ocurre" que deteniendo la macro justo al momento de que la celda
>> > donde se produce el error cambie esta macro se detenga para asi poder depurarla.
>> > Alguna idea/sugerencia/solucion ???



Respuesta Responder a este mensaje
#5 Héctor Miguel
30/04/2009 - 21:21 | Informe spam
hola, moises !

la pregunta mas directa seria:
como puedo "detectar" en tiempo de ejecucion , cuando "cambie" el valor de la celda F1 de la Hoja1
tal vez en el modulo de la hoha en el evento change ??
el probleba es que en algunas partes de las macros utilizo enableevents=false
como creo un punto de inspeccion para esa celda ?? como detengo la ejecucion al cambiar el valor de la celda ???



(creo que) inhabilitar los eventos no impide los (re)calculos del modelo (a menos que tambien lo pongas en manual)
de lo que no estoy seguro es si por la "rapidez" en la ejecucion del bucle, algun cambio se quede "perdido en el limbo" (???)
por lo que te convendria (para la revision que pretendes) NO inhabilitar los eventos NI poner el modo de recalculo en manual
y... probar con la sugerencia del mensaje anterior ...
==>> - otra alternativa pudiera ser la emision de puntos con la informacion "relevante" (variable, ciclo, valores, celda, ... ???)
ya sea en la ventana de inmediato: Debug.Print (que ?), en un msgbox, en un rango de celdas, ???

- (creo que) esta ultima opcion seria mas util en caso de que tu "loop" sea de varios ciclos ({F8} en cada uno de ellos ?)




==
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida