Jump to content
Milton Cordova

ACTIVAR UNDO

Recommended Posts

saludos estimados foristas, alguien me puede ayudar en lo siguiente:

tengo una macro que muestar una imagen solamente cuando el cursor selecciona las celdas C7 y B20

El problem se da cuando por esta macro se desactiva la funcion UNDO

Si ingreso cualquier dato en otras celdas la opcion UNDO se desactiva, he probado quitando la macro y se soluciona.

Gracias

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim LimiteSuperior As Long, LimiteIzquierdo As Long

If Not Application.Intersect(Target, Range("C8")) Is Nothing Then
    Sheets("ABC").Shapes("CALCULO").Visible = True
    Let LimiteSuperior = Target.Offset(-3, 0).Top
   
    Let LimiteIzquierdo = Range("E8").Left
    With ActiveSheet.Shapes("CALCULO")
        .Top = LimiteSuperior
        .Left = LimiteIzquierdo
    End With
 
Else
Sheets("ABC").Shapes("CALCULO").Visible = False

End If
End Sub

 

ACTIVAR UNDO.xls

Edited by Milton Cordova
alcance a una celda

Share this post


Link to post
Share on other sites

@Milton Cordova, no entiendo muy bien qué necesitas hacer (bueno, el código sí, pero no el proposito final). No es que se desactive UNDO, es que UNDO no funciona, así... , por defecto, en aquello que se realice mediante código VBA.

No se pùeden deshacer las acciones realizadas mediante VBA... Y en tu código, hagas lo que hagas, visualizas y ocultas siempre por código Y PARA TODAS LAS CELDAS :huh:, así que hagas lo que hagas, no te va a dejar volver atrás.

Ye te dije que no sé qué necesitas (en tu código solo una celda muestra, y TODO EL RESTO oculta, y todo mediante código). Quizás puedas probar con otro evento (RightClick, Double Click,...)

Share this post


Link to post
Share on other sites

Saludos por dos necesidades de esta macro:

La macro solo esta activandose para la celda C7 deseo que funcione para la celda A20

En la hoja ABC, cualquier cambio que realice o ingreso de datos en otras celdas que es independiente de las celdas A7,A20 no se puede dehacer.

Lo que deseo no es recuperar lo actuado por la macro ya que solo es una vista de una imagen al seleccionar la celda ya sea la C7 o C20, lo que sucede es que cuando trabajo en la Hoja ABC no se puede deshacer.

En las otras Hojas si funciona UNDO, he realizado la comprobacion quitando esta macro y se activa o funciona normalmente cualquier cambio que realice se puede deshacer.

Disculpas por la consulta

Gracias

 

Share this post


Link to post
Share on other sites
Hace 22 minutos , Milton Cordova dijo:

no hay como subir archivo sebrepasa el maximo permitido, lo que tiene es una imagen llamada CALCULO que se muestra al seleccionar la celda C7 , C20.

Gracias

macro actualizada

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim LimiteSuperior As Long, LimiteIzquierdo As Long
If Not Application.Intersect(Target, Range("C8")) Is Nothing Then
    Sheets("ABC").Shapes("CALCULO").Visible = True
    Let LimiteSuperior = Target.Offset(-3, 0).Top
    Let LimiteIzquierdo = Range("E8").Left
    With ActiveSheet.Shapes("CALCULO")
        .Top = LimiteSuperior
        .Left = LimiteIzquierdo
    End With
 Else
Sheets("ABC").Shapes("CALCULO").Visible = False
End If

If Not Application.Intersect(Target, Range("C20")) Is Nothing Then
    Sheets("ABC").Shapes("CALCULO").Visible = True
    Let LimiteSuperior = Target.Offset(-3, 0).Top
   
    Let LimiteIzquierdo = Range("E20").Left
    With ActiveSheet.Shapes("CALCULO")
        .Top = LimiteSuperior
        .Left = LimiteIzquierdo
    End With
End If
End Sub

 

Share this post


Link to post
Share on other sites

En el momento de ejecutar una macro se vacía la pila para ejecutar el comando Deshacer.

O sea, no vas a poder ejecutar Deshacer (Ctrl+z) después de ejecutar una macro.

Si puedes ejecutar el comando Deshacer desde dentro de una macro, pero solo el último cambio y antes de cualquier modificación que efectúes dentro de ella.

    With Application
        .EnableEvents = False
        .Undo
        .EnableEvents = True
    End With

Todo lo expuesto lo he encontrado en Google poniendo simplemente: undo vba

Share this post


Link to post
Share on other sites

Saludos estimado Antoni, lo que deseo indicar es que no deseo deshacer lo que he realizado con la macro, ya que esta macro lo que hace es al seleccionar la celda A7 o A20 mostrar una imagen.

Lo que sucede es que la hoja se encuentra sin la funcion rehacer, esdecir si realizo cualquier trabajo dentro de la Hoja no se puede rehacer.

He comprobado quitando la macro y automaticamente se activa en undo.

he colocado

With Application
        .EnableEvents = False
        .Undo
        .EnableEvents = True
    End With

da error en .undo para excel 2003

Gracias

Share this post


Link to post
Share on other sites
Hace 1 hora, Milton Cordova dijo:

Lo que sucede es que la hoja se encuentra sin la funcion rehacer, esdecir si realizo cualquier trabajo dentro de la Hoja no se puede rehacer.

¿Llegaste a leer lo que te dije, o ni siquiera? :mellow: No es que se desactive UNDO, es que tienes códig en TODAS LAS CELDAS de la hoja

Share this post


Link to post
Share on other sites

Si estimado Antony estoy de acuerdo no puedo deshacer lo que he realizado con la macro, pero lo que hago directamente manualmente en la hoja debería darme esa opcion.

En el libro tengo varias hojas con macros y solamente en la que tengo esta macro no me permite deshacer los eventos que realizo manualmente.

En las otras hojas no hay problema, para comprobar le quite la macro y si funciona la opcion deshacer.

Saco como conclucion que es esta macro la que de alguna manera me impide, ya que en las otras macros en otras hojas no me impiden que eventos que realice los pueda deshacer.

Antoni mil disculpas por esta insistencia, si leo con mucho detalle tus mensajes, que desde luego siempre han sido muy excelentes.

Share this post


Link to post
Share on other sites
Hace 7 horas, Milton Cordova dijo:

Si estimado Antony estoy de acuerdo no puedo deshacer lo que he realizado con la macro, pero lo que hago directamente manualmente en la hoja debería darme esa opcion.

Ya no sé cómo decirtelo Milton... :(

 

En 4/10/2018 at 7:31 , Haplox dijo:

No es que se desactive UNDO, es que tienes códig en TODAS LAS CELDAS de la hoja

Y como el código AFECTA A TODAS LAS CELDAS, CUALQUIER COSA QUE HAGAS EN ELLAS ES COMO SI LO HICIERAS CON UNA MACRO.

Hasta aquí he llegado  :ph34r:

Share this post


Link to post
Share on other sites

A ver si así lo entiendes mejor:

A efectos de Deshacer/Rehacer, cada vez que se ejecute una macro, incluidas las de evento de hoja y libro, es como si abrieras el archivo de nuevo.

¿Mejor así?

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png