Macro que se bloquee después de escribir valor y para editar solicite contraseña

Por favor su ayuda, soy bastante nuevo con macros y necesito ayuda, tengo tres hojas de excel con varias celdas donde se ingresan valores y con los valores de estas celdas tengo varios cálculos y fórmulas.
Quisiera saber si me pueden ayudar con una macro que después de escribir los valores en los rangos, por ejemplo (J63:L72), estas celdas se bloqueen y si se quieren modificar estos valores, se pregunte si realmente desea modificar el valor, y si quiere modificar el valor ingresar una contraseña.

1 respuesta

Respuesta
1

Realiza lo siguiente:

1. Selecciona la hoja donde quieres que funcione. En mi ejemplo voy a utilizar la "Hoja4"

2. Selecciona el rango de celdas J63:L72

3. En el Menú Formato, Formato de Celdas, Proteger, desactiva la casilla Bloqueada y presiona Aceptar.

4. Presiona clic derecho sobre la pestaña de la "Hoja4" y selecciona del menú la opción Ver código:

5. Pega el siguiente código en el panel blanco que te aparece

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, c As Range
  '
  Set rng = Intersect(Target, Range("J63:L72"))
  If Not rng Is Nothing Then
    For Each c In rng
      If c.Value <> "" Then
        ActiveSheet.Unprotect "abc"
        c.Locked = True
        ActiveSheet.Protect "abc"
      End If
    Next
  End If
End Sub

6. Regresa a la hoja de excel.

7. Entra al menú Revisar y selecciona Proteger hoja.

8. Captura el password "abc" y presiona Aceptar

9. Confirma la contraseña escribiendo "abc" y presiona Aceptar.

Listo, después de que escribas un valor en cualquier celda del rango "J63:L72" la celda se bloqueará.

Si requieren modificar una de esas celdas, tendrá que desproteger la hoja con el password.

Realizar pruebas y comentas.

Hola Dante,

Muchas gracias por tu respuesta. Seguí las instrucciones que me enviaste, pero por alguna razón me esta produciendo el siguiente error. ¿Tal vez podrías ayudarme por favor? Si es posible también, como podría desplegar un mensaje que pregunte si realmente desea cambiar el valor y siquiera cambiar el valor de la celda pida la contraseña.

De antemano muchas gracias.

Saludos

Oscar.

No deberías trabajar con celdas combinadas. No es recomendable.

Pero si vas a seguir con celdas combinadas, entonces prueba con esto:

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, c As Range
  '
  Set rng = Intersect(Target, Range("J63:L72"))
  If Not rng Is Nothing Then
    For Each c In rng
      If c.Value <> "" Then
        ActiveSheet.Unprotect "abc"
        c.Resize(1, 3).Locked = True
        ActiveSheet.Protect "abc"
      End If
    Next
  End If
End Sub

Muchas gracias Dante,

Exactamente después que ingreso el valor la celda se bloquea. Podrías ayudarme por favor, necesito agregarle que si alguien quiere modificar el valor de la celda aparezca un mensaje preguntando si realmente desea editar el valor, y si se quiere modificar que se introduzca la contraseña para hacerlo.

Muchas gracias.

Ahora, para editar una celda, realiza lo siguiente, pega la siguiente macro en un módulo:

Sub Editar_Celda()
  Dim rng As Range
  Dim res As Variant, pwd As Variant
  '
  Set rng = Intersect(ActiveCell, Range("J63:L72"))
  If Not rng Is Nothing Then
    res = MsgBox("Realmente desea editar el valor", vbQuestion + vbYesNo)
    If res = vbYes Then
      pwd = InputBox("Ingresa la contraseña : ", "EDITAR CELDA")
      If pwd = "abc" Then
        ActiveSheet.Unprotect "abc"
        ActiveCell.Resize(1, 3).Locked = False
        ActiveSheet.Protect "abc"
      End If
    End If
  End If
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Editar_Celda
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

De esta manera funciona:

1. Selecciona la celda que quieres editar.

2. Presiona el botón

3. Presiona Sí para editar la celda

4. Escribe el password "abc"

5. Edita la celda y presiona enter. En este momento entra en funcionamiento la otra macro y vuelve a bloquear la celda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas