Note: The other languages of the website are Google-translated. Back to English

¿Cómo evitar que se eliminen contenidos de celda específicos en Excel?

Este artículo habla sobre cómo evitar que se eliminen contenidos de celda específicos en Excel. Puede lograrlo con los métodos de este artículo.

Evite que se eliminen contenidos de celda específicos protegiendo la hoja de trabajo
Evite que se eliminen contenidos de celda específicos mediante el uso de código VBA


Evite que se eliminen contenidos de celda específicos protegiendo la hoja de trabajo

De forma predeterminada, todas las celdas de la hoja de trabajo están bloqueadas. Si desea evitar que se eliminen contenidos de celdas específicos y hacer que otras celdas sean editables después de protegerlas, haga lo siguiente.

1. Haga clic en el en la esquina superior izquierda de la hoja de trabajo para seleccionar toda la hoja de trabajo. Entonces presione Ctrl + 1 teclas para abrir el Formato de celdas caja de diálogo.

2. En la aparición Formato de celdas cuadro de diálogo, desmarque la Cerrado Bajo el Protección pestaña, y luego haga clic en OK botón. Ver captura de pantalla:

3. Seleccione las celdas en las que no desea que se eliminen los contenidos, presione Ctrl + 1 teclas para abrir el Formato de celdas cuadro de diálogo de nuevo, marque el Cerrado Bajo el Protección pestaña, y luego haga clic en OK

4. Ahora haga clic en Revise > Hoja de protección, luego especifique y confirme su contraseña en ambos Hoja de protección y Confirmar contraseña Cuadros de diálogo.

Ahora la hoja de trabajo está protegida. Y el contenido de la celda especificado ya no se eliminará.


Evite que se eliminen contenidos de celda específicos mediante el uso de código VBA

Además de los dos métodos anteriores, puede ejecutar código VBA para evitar que se eliminen contenidos de celda específicos en una hoja de trabajo. Haz lo siguiente.

1. Abra la hoja de trabajo que contiene el contenido de la celda que no desea eliminar, haga clic con el botón derecho en la pestaña Hoja y luego haga clic en Ver código desde el menú contextual.

2. Copie y pegue el siguiente código VBA en la ventana Código del Microsoft Visual Basic para aplicaciones ventana.

Código de VBA: evite que se eliminen contenidos de celda específicos en Excel

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:E7")) Is Nothing Then Exit Sub
    On Error GoTo ExitPoint
    Application.EnableEvents = False
    If Not IsDate(Target(1)) Then
        Application.Undo
        MsgBox " You can't delete cell contents from this range " _
        , vbCritical, "Kutools for Excel"
    End If
ExitPoint:
    Application.EnableEvents = True
End Sub

Nota:: En el código, A1: E17 es el rango en el que evitará que se elimine el contenido de la celda. Puede cambiar el rango según sus necesidades.

De ahora en adelante, cuando intente eliminar el contenido de la celda del rango A1: E17, obtendrá un Kutools for Excel cuadro de diálogo como se muestra a continuación, haga clic en el OK


Artículos relacionados:


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (17)
5 clasificado de 5 · 1 calificaciones
Este comentario fue minimizado por el moderador en el sitio
Justo lo que estaba buscando, gracias por la ayuda!
Este comentario fue minimizado por el moderador en el sitio
no te preocupes siempre aquí para ayudar :)
Este comentario fue minimizado por el moderador en el sitio
Hola,

Acabo de probar el script de VBA y, aunque funciona muy bien en la mayoría de las situaciones. Sin embargo, no funciona cuando pasa de una celda editable a la columna/celda no editable. El problema surge porque arroja el mensaje de error, como se ordenó, pero no conserva los datos que se ingresaron en la celda editable original desde la que se tabuló.

¿Tendría una enmienda a la secuencia de comandos para que acepte los datos en la celda editable cuando tabula en no editable?

¡Salud
Este comentario fue minimizado por el moderador en el sitio
Buenos días,
Intenté como mencionaste en tu caso, pero no arroja ningún error. ¿Podría proporcionar una captura de pantalla de su caso o decirme su versión de Office?
Gracias por tu comentario.
Este comentario fue minimizado por el moderador en el sitio
Si no desea mirar su hoja o escribir código VBA, entonces uso una técnica simple que evita cualquier anulación, excepto cuando usan la tecla "ELIMINAR" (no se permitirá el retroceso, pero Eliminar es difícil de detener ). Lo que hice fue agregar una validación de datos con la siguiente configuración:

1) Permitir --> Lista

2) desmarque "Ignorar en blanco" y "desplegable en la celda"

3) En la fuente ingrese dos comillas dobles (es decir, "")

4) En la pestaña Alerta de error, marque "Mostrar alteración del error después de ingresar datos no válidos", seleccione "Detener" para el estilo, luego ingrese un mensaje de error y una descripción (por ejemplo, No anular)
Este comentario fue minimizado por el moderador en el sitio
Hola,
Gracias por compartir.
Este comentario fue minimizado por el moderador en el sitio
Código VBA - Gran consejo gracias

¿Existe un código VBA para evitar que se modifiquen Y eliminen contenidos específicos de celdas en Excel?
¿La hoja de protección habitual no funciona para mí porque pierdo la capacidad de ordenar los datos?

Gracias de antemano - Neil
Este comentario fue minimizado por el moderador en el sitio
"Evite que se eliminen los contenidos específicos de las celdas protegiendo la hoja de trabajo" Lo hice de acuerdo con sus pautas, aún así la información de las celdas podría eliminarse, es decir, la protección no funciona. Alguna solución.
Este comentario fue minimizado por el moderador en el sitio
Hola Ahsan,
¿Aplicaste el método VBA?
Debe agregar el VBA a la ventana de código de la hoja de trabajo. Suponiendo que el contenido de la celda que desea proteger está en Sheet9, haga clic con el botón derecho en la pestaña de la hoja y seleccione Ver código en el menú contextual, y luego copie directamente el código en la ventana de código como se muestra en la imagen a continuación.
Este comentario fue minimizado por el moderador en el sitio
Hola, este código funciona bien, sin embargo, eliminar la fila/columna lo omitirá. ¿Hay alguna solución a esto? Saludos, David.
Este comentario fue minimizado por el moderador en el sitio
Hola David,
¿Qué versión de Excel estás usando? Probé el código, las filas y columnas completas en el rango especificado no se pueden eliminar después de aplicar el código.
Este comentario fue minimizado por el moderador en el sitio
Gracias por la valiosa información.
Con respecto al siguiente VBA:
Sub hoja de trabajo privada_Cambio (según el rango de destino ByVal)
Si Intersect(Target, Range("A1:E7")) no es nada, entonces salga de Sub
En caso de error Ir a punto de salida
Application.EnableEvents = False
Si no es la fecha (objetivo (1)), entonces
Aplicación.Deshacer
MsgBox "No puede eliminar el contenido de la celda de este rango" _
, vbCritical, "Kutools para Excel"
Si terminar
Punto de salida:
Application.EnableEvents = True
End Sub

Lo anterior permitirá la ejecución dentro de un cierto rango especificado. No permite la adición de nuevas filas. ¿Hay alguna manera de que se puedan agregar nuevas filas manteniendo la misma protección?
gracias y saludos
Este comentario fue minimizado por el moderador en el sitio
Hola Oussama Abou faraj,
Después de probar con varios métodos, parece que no puedo hacer que esto funcione. Después de agregar una nueva fila, el área se bloqueará inmediatamente y la celda recién insertada no se podrá editar.
Este comentario fue minimizado por el moderador en el sitio
¿Es posible hacer algo similar a nivel de libro de trabajo?

Sub hoja de trabajo privada_Cambio (según el rango de destino ByVal)
Si Intersect(Target, Range("A1:M7000")) no es nada, salga de Sub
En caso de error Ir a punto de salida
Application.EnableEvents = False
Si no es la fecha (objetivo (1)), entonces
Aplicación.Deshacer
MsgBox "No puede eliminar el contenido de la celda de este rango" _
, vbCritical, "Kutools para Excel"
Si terminar
Punto de salida:
Application.EnableEvents = True
End Sub
Este comentario fue minimizado por el moderador en el sitio
Hola Gelu,
¿Quiere evitar que el rango "A1: M7000" se elimine en todas las hojas de trabajo del libro actual?
Este comentario fue minimizado por el moderador en el sitio
No, quise NO permitir la eliminación (sin proteger los wks o wkb).

Es bueno que lo anterior funcione a nivel de Wks.

Si hay algo para que funcione a nivel de wkb, sería aún mejor (tengo muchas hojas)

G
Este comentario fue minimizado por el moderador en el sitio
Esto es genial. Me preguntaba si esta era una opción y, efectivamente, lo era. Gracias por las instrucciones muy fáciles.

Andrés S.
5 clasificado de 5
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL