Deshacer

04/06/2006 - 22:51 por Arturo | Informe spam
Hola grupo.
Es posible que una instrucción de macro ejecute la función deshacer?.
Explico lo que pregunto. Con la ayuda de este grupo he creado una macro que
dispara un Msgbox ante un evento que se da cuando dos celdas difieren de
valor. Como esto sucede cuando se ha entrado por error un valor en una celda,
para subsanarlo se debe "deshacer". La pregunta es si hay modo que ejecute
"deshacer" a través de una instrucción o siempre debe ser manualmente.
Gracias

Preguntas similare

Leer las respuestas

#1 KL
05/06/2006 - 00:19 | Informe spam
Sub test()
On Error Resume Next
Application.Undo
End Sub


"Arturo" wrote in message news:
Hola grupo.
Es posible que una instrucción de macro ejecute la función deshacer?.
Explico lo que pregunto. Con la ayuda de este grupo he creado una macro que
dispara un Msgbox ante un evento que se da cuando dos celdas difieren de
valor. Como esto sucede cuando se ha entrado por error un valor en una celda,
para subsanarlo se debe "deshacer". La pregunta es si hay modo que ejecute
"deshacer" a través de una instrucción o siempre debe ser manualmente.
Gracias
Respuesta Responder a este mensaje
#2 Héctor Miguel
05/06/2006 - 05:17 | Informe spam
hola, Arturo !

Es posible que una instruccion de macro ejecute la funcion deshacer?.
... he creado una macro que dispara un Msgbox ante un evento que se da cuando dos celdas difieren de valor.
Como esto sucede cuando se ha entrado por error un valor en una celda, para subsanarlo se debe "deshacer".
La pregunta es si hay modo que ejecute "deshacer" a traves de una instruccion o siempre debe ser manualmente.



op1: si la macro que dispara el mensaje esta usando el evento '_change' de alguna hoja 'en especifico'...
y el mensaje 'salta' en el PRECISO momento en que una celda 'en especifico' a tomado un valor 'incorrecto'...
puedes 'regresar' el valor 'vaido' [anterior] inmediatamente despues de mostrar el mensaje [p.e.]
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then _
If [a1] > 15 Then _
MsgBox "A1 no puede contener un valor mayor a 15 !!!": _
Application.Undo
End Sub

op2: si la macro usa un evento distinto [como el '_calculate']... o se debe a una 'verificacion retardada'... o es 'a discrecion'...
[probablemente] no seria posible 'detectar' [p.e.] cuantos 'niveles de des-hacer' han ocurrido desde la entrada 'incorrecta' -???-
y seria necesario algun mecanismo de 'monitoreo y conservacion' de los valores 'validos/invalidos' ocurridos en 'la celda'

comentas algun detalle mas... 'conceto' ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Arturo
06/06/2006 - 23:46 | Informe spam
Hola KL
Hola Héctor Miguel
Gracias!!!
Efectivamente, la opción 1 es la situación.
Pruebo como resulta y si amerita comento.
Saludos,

"Héctor Miguel" escribió:

hola, Arturo !

> Es posible que una instruccion de macro ejecute la funcion deshacer?.
> ... he creado una macro que dispara un Msgbox ante un evento que se da cuando dos celdas difieren de valor.
> Como esto sucede cuando se ha entrado por error un valor en una celda, para subsanarlo se debe "deshacer".
> La pregunta es si hay modo que ejecute "deshacer" a traves de una instruccion o siempre debe ser manualmente.

op1: si la macro que dispara el mensaje esta usando el evento '_change' de alguna hoja 'en especifico'...
y el mensaje 'salta' en el PRECISO momento en que una celda 'en especifico' a tomado un valor 'incorrecto'...
puedes 'regresar' el valor 'vaido' [anterior] inmediatamente despues de mostrar el mensaje [p.e.]
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then _
If [a1] > 15 Then _
MsgBox "A1 no puede contener un valor mayor a 15 !!!": _
Application.Undo
End Sub

op2: si la macro usa un evento distinto [como el '_calculate']... o se debe a una 'verificacion retardada'... o es 'a discrecion'...
[probablemente] no seria posible 'detectar' [p.e.] cuantos 'niveles de des-hacer' han ocurrido desde la entrada 'incorrecta' -???-
y seria necesario algun mecanismo de 'monitoreo y conservacion' de los valores 'validos/invalidos' ocurridos en 'la celda'

comentas algun detalle mas... 'conceto' ?
saludos,
hector.



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