Macros revertibles

Hola experto, buen día, como podría diseñar una macro de modo tal que al ejecutarla provoque una acción y al volverla a ejecutar provoque la acción opuesta.
Por ejemplo, ejecuto, inmoviliza ventana en excel, vualvo a ejecutar moviliza ventana en excel.
Gracias

2 Respuestas

Respuesta
1
Ok, aquí te va un ejemplo de una macro que protege y desprotege una hoja.
'************Comienza aquí*******************
Sub inmoviliza()
'1=desprotegida
'2=desprotegida
' inmoviliza Macro
'
'Hoja en donde se ejecutará la macro
   Sheets("Hoja1").Select
   'rango poco probable que sea utilizado.
   If Range("IV65000").Value = 1 Or Range("IV65000").Value = "" Then
       Range("IV65000").Value = 2
      ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
     MsgBox "La Hoja está Protegida"
   ElseIf Range("IV65000").Value = 2 Then
        ActiveSheet.Unprotect
        Range("IV65000").Value = 1
         MsgBox "La Hoja está Desprotegida"
   End If
'
End Sub
'************Termina aquí*********************
'
Nota:
Esta macro la asigne a un botón.
Atenta a tus dudas.
Muy astuto experto... sobre todo cambiando el comando de alternar por una opción en linea que hace cambiar el valor de una celda según la acción anterior-
Graciasssssssssssssss
Respuesta
1
Puedes usar el control "botón de alternar" (togglrButton), este control tiene dos posiciones presionado y no presionado.
Acá un ejemplo de lo que hace este control, ocultando columnas.
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
    Columns("D:J").Hidden = False
End If
If ToggleButton1.Value = False Then
    Columns("D:J").Hidden = True
End If
End Sub
Analízalo y si tienes alguna duda no dudes en preguntar, suerte.
La copie tal cual al visual y me arroja un cartel de error de compilación diciendo que esperaba un end sub. Me voy a fijar a ver si puedo explorar el error.
Estoy muy agradecido por tu ayuda.
emi
QUE raro, primero inserta el botón de alternar en la hoja, en modo diseño dale dobleclick he inserta el código, no deberías de tener problema, cualquier cosa avisame.
Si solucionaste el problema, ¿puedes por favor dar por cerrada la pregunta?.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas