Como bloquear una hoja de excel sin que mis tablas dejen de actualizarse al ingresar más datos

En una hoja de excel tengo una tabla y en algunas columnas tengo fórmulas, como puedo bloquear la hoja de excel para proteger las fórmulas sin que la tabla deje de actualizarse al ingresar más datos.

2 Respuestas

Respuesta
2

Puedes proteger rangos específicos de celdas que te interesen.

En tu hoja Excel: REVISAR --> Permitir que los usuarios modifiquen rangos.

https://www.youtube.com/watch?v=KM605R5C8C4 

Muchas gracias pero creo que esa opción no me ayuda del todo, lo que necesito es que mi tabla se vaya actualizando conforme ingreso los datos, y con esta opción sigue sin actualizarse mi tabla, había intentado con esta opción: 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
With ActiveSheet
.Unprotect   (Aquí me marca el error) 
.ListObjects("Tabla1").Resize Target.CurrentRegion   (También aquí me marca error en una tabla diferente) 
.Protect
End With
End Sub

Solo que me marca error, no sé, si sea por la ubicación de las tablas o el tamaño, si me pudieran ayudar a entenderla o si tienen alguna opción mejor. 

Es que sin ver tu excel, tenemos que imaginarnos lo que tienes, dónde lo tienes y cómo lo tienes.

Con la descripción dada no se sabe qué celdas se quieren proteger, si las fórmulas están en esas celdas o en otras, etc.

Hola, tienes razón. 

Acabo de mandar los ejemplos en respuesta a James Bond. ojala me puedan ayudar. 

Gracias. 

Vamos a ver. Según he leído tu última respuesta, tienes (al menos que yo haya visto) una hoja con columnas que van desde A hasta J. Y quieres solamente bloquear la columna C, pero el resto dejar que tecleen datos.

Pues si solo es eso, es como te había dicho antes. En tu hoja vas a

REVISAR --> Permitir que los usuarios modifiquen rangos.

Y el resto es como sigue

En este ejemplo he puesto rangos hasta la fila 10, pero tú eliges hasta qué fila o si es toda la columna.

Esta opción te bloquea toda la hoja, excepto los rangos que se han ido introduciendo en los pasos 2 y 3. Es decir, te dejaría teclear en A, B, D, E, F, G, H, I, J y te bloquearía C.

Claro, es sin macros. Pero es eficaz. Si no es eso lo que buscas, entonces tampoco te he entendido ahora.

¡Gracias! 

Si es una buena opción cuando no utilizas macros, pero si necesito utilizar macros, necesito bloquear la hoja o ciertas columnas pero que me respete las macros (que mi tabla se actualice conforme ingreso los datos), si conoces una opción que permita hacer eso sería genial. 

Respuesta
1

No has mencionado como ingresas la información si desde un rango de la hoja o desde un formulario por ejemplo para el caso de que sea por rango de celdas hice este ejemplo, la macro bloquea toda la hoja excepto el rango que va desde b1 hasta e1, de esta forma nadie puede copiar, cortar, modificar, agregar o moverse más allá del esos limites, la única forma de capturarlos es por medio de una macro como la que esta abajo de esta imagen., la orden que se ocupa en este caso se llama scrollarea esta se bloquea y se desbloquea a través de una macro, la puedes carga desde el inicio en el evento Sub Workbook_Open() del modulo thisworkbook así cada vez que abra el libro en automático creara el bloqueo

Private Sub CommandButton1_Click()
Sheets("hoja2").ScrollArea = "b1:e1"
Set nuevos = Range("b1").CurrentRegion
Sheets("hoja2").ScrollArea = ""
Set tabla = Range("b4").CurrentRegion
With tabla
    r = .Rows.Count
    .Rows(r + 1).Value = nuevos.Rows(1).Value
    Sheets("hoja2").ScrollArea = "b1:e1"
End With
Set nuevos = Nothing: Set tabla = Nothing
End Sub

esta es otra manera de ponerlo manualmente, en el recuadro resaltado en azul de propiedades tecleas el alcance y la captura la haces a traves de una macro, desde un formulario se usa la misma orden solo que es diferente la programacion.

Hola creo que tienen razón, voy subir un ejemplo: 

En esta primera Base de Datos se llena de la siguiente forma: 

Columna A: Se ingresa el dato manualmente. 

Columna B: Contiene un listado de validación de datos, únicamente seleccionas (es importante señalar que la información de la validación de datos se alimenta de la hoja llamada listados y a su vez la hoja de listados se alimenta de otro archivo llamado Proyectos, conforme van aumentando los proyectos se actualiza la hoja de listados y a su vez va actualizando la validación de datos de la hoja de Facturación.) 

Columna C: El valor se ingresa de manera automática mediante la formula "BUSCARV" dependiendo el Proyecto me alimenta el No. de Cliente; el No. de Cliente lo busca de la hoja listados que al igual que en el caso anterior se va alimentando de otro archivo llamado proyectos.  

Las columnas D,E,F, y G se alimentan de la misma forma que la columna B, mediante una validación de datos que se va actualizando conforme los proyectos aumentan. 

Las columnas H e I se alimentan manualmente. 

La columna J se alimenta mediante una validación de datos que proviene de la hoja de Listados, sin embargo esta lista es fija, siempre es la misma cantidad de información. 

Lo que necesito es poder bloquear la hoja Excepto las celdas de las columnas: 

A, H e I: Por que se ingresan los valores manualmente. 

B,D,E, F ,G y J: Por el listado de la validación de datos

La que quedaría bloqueada es la columna C, 

Como se puede ver en la imagen si ingresan información a partir de la fila 11 necesito que la tabla se actualice, es decir que modifique su rango con todo y formula aunque la hoja se encuentre bloqueada. 

Otro ejemplo es la siguiente base de Datos: 

En ésta si yo ingreso en la columna "A" el No. de Factura me trae los datos de las columnas B,C,D,E,F Y G, (Los datos los muestra mediante la formula BUSCARV de la hoja de listados) las columnas H e I ingreso los valores de forma manual. 

Asi como estas 2 bases de datos tengo otras 5 con diferente estructura, por esta razón me interesa conocer como poder bloquear la hoja, pero que mis tablas se sigan actualizando conforme voy ingresando los datos. 

Espero haber sido un poco mas claro y ojala me puedas ayudar te lo agradeceré mucho. 

Así como tienes la información no se puede hacer nada tienes demasiadas columnas que se ingresan manual, hay una alternativa que es la que te presento solo que tienes que hacer una modificación a tu información, mira en esta imagen he creado una área de captura que va de la celda b2 a la celda k2, fuera de esas celdas todo lo demás esta bloqueado y solo se puede acceder a la información o bien quitando el bloqueo o a través de la macro, supongo que con solo copiar una fila de la información que ya tienes al rango ("b2:k2") basta para que tengas listas desplegables y fórmulas en el rango que te mencione, la instrucción como te explique se puede poner directo en la hoja o bien en una macro que haga el bloqueo apenas se abra la hoja, ojo una vez que capture la información la va a pegar como texto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas