Saltar al contenido

Recommended Posts

publicado

Buenas a tod@s siempre he dado por sentado que realizar la restauración de una modificación de datos por parte de la ejecución de una macro era posible pero a la vez harto dificil por lo que revisando y nevegando he localizado el siguiente codigo que realiza dicha labor es decir dar la opción de deshacer ;con el menu deshacer lo realizado, por una macro restaurando los datos que hubiese antes de ser ejecutada

el aporte es de la pagina http://spreadsheetpage.com/index.php/tip/C32

y el codigo

 
Option Explicit
Type SaveRange
Val As Variant
Addr As String
End Type

Public OldWorkbook As Workbook
Public OldSheet As Worksheet
Public OldSelection() As SaveRange
'------------------------------------------------------------------------------
Sub Cambio()
Dim i
Dim cell


If TypeName(Selection) <> "Range" Then Exit Sub

'Guarda los valores actuales para deshacer
ReDim OldSelection(Selection.Count)
Set OldWorkbook = ActiveWorkbook
Set OldSheet = ActiveSheet
i = 0
For Each cell In Selection
i = i + 1
OldSelection(i).Addr = cell.Address
OldSelection(i).Val = cell.Formula
Next cell

'Insertar 0 en la selección actual
Application.ScreenUpdating = False
Selection.Value = 0

'Especificar el nombre que aparecera en menu Deshacer
Application.OnUndo "Deshacer macro", "Deshacermacro"
End Sub
'--------------------------------------------------------------------------------
Sub Deshacermacro()
Dim i
' "Deshace el efecto de la macro
On Error GoTo Problem
Application.ScreenUpdating = False

OldWorkbook.Activate
OldSheet.Activate

' Restaurar la información guardada
For i = 1 To UBound(OldSelection)
Range(OldSelection(i).Addr).Formula = OldSelection(i).Val
Next i
Exit Sub

Problem:
MsgBox "No se puede deshacer"
End Sub
[/CODE]

un saludo

publicado

Logroastur pues segun mi conocimiento esto no se podia, la verdad me asombra la macro!

Gracias por darnos el enlace y para el futuro creo que lo necesitare

Saludos Juan/Miguel!

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • 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.