Excel - Bloquear filas

 
Vista:
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Bloquear filas

Publicado por nacho (14 intervenciones) el 20/07/2018 10:32:32
Hola,

Tengo una hoja con 43 columnas y filas que van aumentando conforme meto datos.
Tengo una macro que va almacenando esos datos, y me gustaría que a la vez que almaceno los datos se me bloquee la fila donde acabo de introducir los datos -50.(Se que seria meter la macro de bloquear en el de almacenar datos, pero no se como desarrollar la macro de bloquear celdas).
Es decir si almaceno datos y es la fila numero 150, que se me bloquee la numero 100.
Todo esto es para que cuando almacene le de cierto tiempo para poder corregir los datos almacenados en caso de error. Por ejemplo, ha metido la 150 y quiere corregir la 145.
También necesitaría una macro que fuese para desproteger todo(por si ocurre algo...). Eso no se si hay que darle directamente a desproteger hoja o como.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Bloquear filas

Publicado por Antoni Masana (2464 intervenciones) el 20/07/2018 11:16:10
Buenos días,

Antes de empezar con las macros hay que hacer unas cuantas cosas manualmente, cosas que solo tendrás que hacer una vez.

- Selecciona TODA la hoja (Recuadro en la parte superior izquierda de la hoja entre la columna A y la fila 1)
- Ir a Inicio - Fuentes - pestaña Proteger. Desmarca la casilla de Bloqueada y aceptar
- Protege la hoja con una contraseña: (Revisar - Proteger hoja, mejor si pones un texto.

Bien ahora ya tenemos la hoja protegida pero veras que puedes escribir en cualquier celda.

Ahora es el trabajo de las MACROS

- Primero desprotegemos la hoja si esta protegida ( Así evitamos errores si no se protegío anteriormente)
- Buscamos donde finaliza las filas de datos y donde empezaremos a escribir
- Bloqueamos las Filas de Datos
- Cargamos nuevos datos.
- Protegemos la hoja.

El código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Paso_1()
    Dim Fila As Long
    With Sheets("Hoja1")
        ' ---&--- Desprotegemos la hoja si esta protegida
        If .ProtectContents = True Then .Unprotect "Palabra_Clave"
        ' ---&--- Buscamos la primera fila vacia
        Fila = 2
        While .Cells(Fila, "A") <> ""
            Fila = Fila + 1
        Wend
        ' ---&--- Bloqueamos desde la Fila 1 hasta la fila anterior a la vacia
        .Rows("1:" & (Fila - 1)).Select
        Selection.Locked = True
        Selection.FormulaHidden = False    ' ---&---  Permite ocultar las Formulas
        .Range("A" & Fila).Select
 
        ' ---&--- Cargamos los nuevos datos
        Call Cargar_Datos
        ' ---&--- Protegemos la Hoja
        .Protect "Palabra_Clave"
    End With
End Sub

Y problema resuelto.

Otra forma de escribir el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Option Explicit
 
Sub Paso_1()
    Dim Fila As Long
    Sheets("Hoja1").Select
    ' ---&--- Desprotegemos la hoja si esta protegida
    If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect "Palabra_Clave"
    ' ---&--- Buscamos la primera fila vacia
    Fila = 2
    While Cells(Fila, "A") <> ""
        Fila = Fila + 1
    Wend
    ' ---&--- Bloqueamos desde la Fila 1 hasta la fila anterior a la vacia
    Rows("1:" & (Fila - 1)).Select
    Selection.Locked = True
    Selection.FormulaHidden = False
    Range("A" & Fila).Select
    ' ---&--- Cargamos los nuevos datos
    Call Cargar_Datos
    ' ---&--- Protegemos la Hoja
    ActiveSheet.Protect "Palabra_Clave"
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Bloquear filas

Publicado por nacho (14 intervenciones) el 20/07/2018 12:03:32
Muchas gracias! eres un crack!
Como se haría para que solo protegiese en la que estamos menos x filas? es que eso no me sale correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Bloquear filas

Publicado por Antoni Masana (2464 intervenciones) el 20/07/2018 12:22:01
Estas tres líneas de código protegen las filas desde la 1 hasta la que le digas en la variable Fila

' ---&--- Bloqueamos desde la Fila 1 hasta la fila anterior a la vacía
1
2
3
Rows("1:" & Fila).Select
Selection.Locked = True
Selection.FormulaHidden = False

Línea 1 - Selecciona las filas desde la 1 hasta el valor de la Variable FILA que debe ser mayo de cero.
Línea 2 - Si es valor TRUE Protege las celdas de escritura.
Linea 3 - Si es valor TRUE oculta las formulas y solo se ve el valor.

Y para que sea efectiva debes proteger la hoja:

1
ActiveSheet.Protect "Palabra_Clave"

Con esta sintaxis estas utilizando una clave y con esta otra sin clave de protección

1
ActiveSheet.Protect


Y si no te sale enviame el fichero, dejo arriba mi correo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Bloquear filas

Publicado por nacho (14 intervenciones) el 20/07/2018 12:29:34
Ya me funciona correctamente, gracias por tu rapidez y conocimientos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar