Consejo: Otros idiomas son traducidos por Google. Puedes visitar el English versión de este enlace.
Iniciar sesión
x
or
x
x
Suscríbete
x

or

¿Cómo bloquear o proteger las celdas después de la entrada o entrada de datos en Excel?

Supongamos que tiene una hoja de trabajo y solo un cierto rango de celdas en blanco necesita la entrada de datos, y luego de terminar de ingresar los datos, necesita que las celdas se bloqueen automáticamente para evitar cambios nuevamente. ¿Cómo puedes lograrlo? Este artículo puede ayudarte.

Bloquee o proteja las celdas después de la entrada o entrada de datos con el código VBA

Ficha Office Habilite la edición y navegación con pestañas en Office y haga su trabajo mucho más fácil ...
Kutools for Excel trae las características avanzadas de 300 a Excel y aumenta su productividad en 80%
  • Texto automático: Cree sus gráficos, imágenes, celdas, fórmulas complejas y reutilizar ellos rápidamente en el futuro.
  • Más de características de texto 20: Extraer número de la cadena de texto; Extraer o eliminar parte de los textos; Convertir números y monedas a palabras en inglés ...
  • Herramientas de fusión: Múltiples libros de trabajo y hojas en uno; Fusionar múltiples celdas / filas / columnas y guardar datos; Combinar filas duplicadas y sumar ...
  • Herramientas divididas: Dividir datos en varias hojas en función del valor; Un libro de trabajo para múltiples archivos Excel, PDF o CSV; De una columna a varias columnas ...
  • Saltar pasta Filas ocultas / filtradas; Cuenta y suma por color de fondo; Crear lista de correo y Enviar correos electrónicos por el valor de la celda...
  • Súper filtro: Cree esquemas de filtro avanzados y aplique a cualquier hoja; Tipo de Propiedad por semana, día, frecuencia y más; Filtrar por negrita, fórmulas, comentario ...
  • Más de potentes funciones de 300; Funciona con Office 2007-2019 y 365; Soporta todos los idiomas; Fácil despliegue en compañía; Funciones completas de prueba gratuita de 60-day.

Bloquee o proteja las celdas después de la entrada o entrada de datos con el código VBA

Por ejemplo, el cierto rango de celdas en blanco es A1: F8. Haga lo siguiente para bloquear estas celdas después de la entrada de datos en Excel.

1. Desbloquee este rango primero, seleccione las celdas y haga clic derecho, luego elija Formato de celdas en el menú contextual, y en el Formato de celdas cuadro de diálogo, desmarcando Cerrado caja debajo del protección pestaña, y finalmente haciendo clic en OK botón. Ver captura de pantalla:

2. Hacer clic Reseña > Hoja de protección. Y especifique una contraseña para proteger esta hoja de trabajo.

3. Haga clic derecho en la pestaña de la hoja, seleccione Ver código desde el menú contextual. Luego copie y pegue el siguiente código de VBA en la ventana Código. Ver captura de pantalla:

Código VBA: bloquea o protege las células después de la entrada o entrada de datos

Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
    mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Intersect(Range("A1:F8"), Target)
    If xRg Is Nothing Then Exit Sub
    Target.Worksheet.Unprotect Password:="123"
    If xRg.Value <> mStr Then xRg.Locked = True
    Target.Worksheet.Protect Password:="123" 
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
     mStr = mRg.Value
End If
End Sub

Nota: En el código, "A1: F8" es el rango que necesita para ingresar datos; y "123" es la contraseña de esta hoja de trabajo protegida. Por favor cámbielos como lo necesite.

4. Prensa otro + Q llaves al mismo tiempo para cerrar el Microsoft Visual Basic para aplicaciones ventana.

Después de terminar de ingresar los datos en las celdas del rango A1: F8, se bloquearán automáticamente. Y obtendrá un cuadro de diálogo de solicitud si intenta cambiar cualquier contenido de celda de este rango. Ver captura de pantalla:


Office Tab - Navegación con pestañas, edición y administración de libros en Excel:

Office Tab trae la interfaz con pestañas como se ve en los navegadores web como Google Chrome, nuevas versiones de Internet Explorer y Firefox a Microsoft Excel. Será una herramienta de ahorro de tiempo e irremplazable en su trabajo. Vea la demostración a continuación:

¡Haz clic para obtener una versión de prueba gratuita de Office Tab!

Pestaña Office para Excel


Artículos relacionados:


Kutools for Excel: la mejor herramienta de productividad de Office aumenta su productividad en un 80%

  • Super Formula Bar (edite fácilmente varias líneas de texto y fórmula); Diseño de lectura (lee y edita fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas y mantener datos; Contenido de celdas divididas; Combinar filas duplicadas y suma / promedio... Prevenir células 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 Celdas múltiples sin cambiar la referencia de fórmula; Crear referencias automáticamente a múltiples hojas; Insertar viñetas, Casillas de verificación y más ...
  • Fórmulas favoritas e insertadas rápidamente, Gamas, cuadros y cuadros; Cifrar celdas con contraseña Crear una lista de correo y enviar correos electrónicos ...
  • Extracto del texto, Agregar texto, Eliminar por posición, Eliminar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtro a otras hojas); Clasificación avanzada por mes / semana / día, frecuencia y más; Filtro especial por negrita, cursiva ...
  • Combinar libros de trabajo y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes xls, xlsx y PDF...
  • Más de potentes funciones de 300. Funciona con Office 2007-2019 y 365. Soporta todos los idiomas. Fácil despliegue en compañía. Funciones completas de prueba gratuita de 60-day.
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

  • Habilitar la edición y lectura con pestañas en Word, Excel, PowerPoint, Editor, Acceso, Visio y Proyecto.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta tu productividad en un 50% y reduce cientos de clics de ratón por ti todos los días!
fondo officetab
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Jenny · 1 months ago
    After implementing this code, I can no longer sign my signature in Excel's signature tool. What code can I add so that this won't occur? I can set it so that one can edit objects but as soon as I type something into one of my protected cells the options are reset and I can't use the signature box. Any help would be appreciated
  • To post as a guest, your comment is unpublished.
    Jim · 2 months ago
    Hi, something like this in google sheet?
    • To post as a guest, your comment is unpublished.
      crystal · 2 months ago
      Hi Jim,
      Didn't text in google sheet. Thanks for your comment.
  • To post as a guest, your comment is unpublished.
    Ryan Bullock · 2 months ago
    Hello there, how can I use this so that the user inputs the data in a range and then must click a submit button/cell to lock the cells?
    • To post as a guest, your comment is unpublished.
      crystal · 2 months ago
      Good day,
      Can't help you solving this problem yet. Thanks for your comment.
  • To post as a guest, your comment is unpublished.
    AW · 2 months ago
    If the cell is currently empty (but has previously been filled) is there a way to make it editable rather than protected?
  • To post as a guest, your comment is unpublished.
    M · 8 months ago
    it doesn't seem to work if i have some cells merged. is there a solution for that?
    • To post as a guest, your comment is unpublished.
      crystal · 7 months ago
      Hi,
      If there are merged cells in the specified range, please try the following code.

      Dim mRg As Range
      Dim mStr As String

      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
      Set mRg = Target.Item(1)
      mStr = mRg.Value
      End If
      End Sub
      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim xRg As Range
      On Error Resume Next
      Set xRg = Intersect(Range("A1:F8"), Target)
      If xRg Is Nothing Then Exit Sub
      Target.Worksheet.Unprotect Password:="123"
      If xRg.Value <> mStr Then xRg.MergeArea.Locked = True
      Target.Worksheet.Protect Password:="123"
      End Sub
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
      Set mRg = Target.Item(1)
      mStr = mRg.Value
      End If
      End Sub
  • To post as a guest, your comment is unpublished.
    SURENDRA · 8 months ago
    SIR I SUCCESS TO PROTECT AND LOCK CELL BUT I WANT TO EDIT CELLS WHEN THEY LOCKED ONLY THROUGH CELLS CLICK AND ASK PASSWORD TO EDIT CELL . HOW TO DO THIS ..?
    • To post as a guest, your comment is unpublished.
      crystal · 7 months ago
      Hi SURENDAR,
      Sorry can't help with that. Thank you for your comment.
  • To post as a guest, your comment is unpublished.
    Prandeep · 9 months ago
    Sir, when pasting code after double click in selected entry cell which cell enter the data the cell did not permission to entry value please fix the problem modify the code.
    • To post as a guest, your comment is unpublished.
      crystal · 9 months ago
      Hi,
      The code has been updated with the problem solving, please have a try. Thank you for your comment.
  • To post as a guest, your comment is unpublished.
    Jess · 10 months ago
    Hello, I'm trying to code so that a user can double-click and it will capture their username and timestamp. I was the cells to lock immediately after this is completed. I have the following in VBA, but it keeps debugging back to the "Target = Environ("USERNAME") & " " & Now()". I am VERY new and VERY inexperienced w/ VBA, so please bear with me if it's something small I'm doing wrong.

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Target = Environ("USERNAME") & " " & Now()
    Cancel = True

    End Sub

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Intersect(Range("A1:D45"), Target)
    If xRg Is Nothing Then Exit Sub
    Target.Worksheet.Unprotect Password:="GENERAL"
    xRg.Locked = True
    Target.Worksheet.Protect Password:="GENERAL"
    End Sub
    • To post as a guest, your comment is unpublished.
      crystal · 9 months ago
      Hi Jess,
      The below VBA code can help you.
      Note: When protecting the worksheet, please uncheck the "Select locked cells" option in the Protect sheet dialog box. Thank you for your comment.

      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Dim xRg As Range
      On Error Resume Next
      If ProtectContents Then
      Set xRg = Intersect(Range("A1:D4"), Target)
      If xRg Is Nothing Then Exit Sub
      Target.Worksheet.Unprotect Password:="123"
      Target = Environ("USERNAME") & " " & Now()
      Target.Locked = True
      Target.Worksheet.Protect Password:="123"
      Cancel = True
      End If
      End Sub
  • To post as a guest, your comment is unpublished.
    Nazmul · 10 months ago
    when I get out of the currently working file and opened it again I found that new cell not locked after data entry, only the previous lock cell found lock. any solution
    • To post as a guest, your comment is unpublished.
      crystal · 10 months ago
      Hi Nazmul,
      You need to save the workbook as an Excel Macro-Enabled Workbook before closing it.
  • To post as a guest, your comment is unpublished.
    shreedhar · 10 months ago
    Thanks man, This Saved my job : D
  • To post as a guest, your comment is unpublished.
    Kim · 1 years ago
    Hi - this post was very helpful and works perfectly. However, my filters stop working when the cells lock. Is there a way around this? Thanks!
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Hi Kim,
      Sorry can't help with this. The filter feature is disabled in a protected worksheet by default.
  • To post as a guest, your comment is unpublished.
    max m. marcus · 1 years ago
    hello there need some help


    im actually doing a working roster for a large group of people, and this sheet is accessible by all so that they can key in their requests for days off/ annual leaves etc. however i want to only limit a number of people on leave for each day (maximum 5 on leave) and after 5 leave requests are keyed in for the day, no body else can fill anymore requests for that particular date.


    is there any code/function that will calculate the number of specific requests perday then when the quota is reached, then the other cells are blocked for the requests as to not exceed? thanks in advance
  • To post as a guest, your comment is unpublished.
    Peter Stires · 1 years ago
    Good Morning,

    Is there anyway to prevent a user from right clicking "view code" and seeing the admins password?
  • To post as a guest, your comment is unpublished.
    Smith · 1 years ago
    Hello,
    Is there a way to lock only cells rather than the whole sheet? For example, if a user enters "Yes" in A2, then A2 would lock immediately as to not allow any changes. I would still like if others could still edit any other cell too. Thanks!
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Hi Smith,
      The below VBA code can help you solving the problem. Please have a try and thank you for your comment.

      Private Sub Worksheet_Change(ByVal Target As Range)
      On Error Resume Next
      Target.Worksheet.Unprotect Password:="123"
      Target.Locked = True
      Target.Worksheet.Protect Password:="123"
      End Sub
  • To post as a guest, your comment is unpublished.
    jackie · 1 years ago
    Hi
    editing the code is there a way i can get it to lock all the cells in the range after data has been entered into one cell within that range ? so they can only enter data into one cell within the range not multiple.


    thank you
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Jackie,
      The below VBA code can help you solve the problem.

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim xRg As Range
      Dim xSRg As Range
      On Error Resume Next
      Set xSRg = Range("A1:F8")
      Set xRg = Intersect(xSRg, Target)
      If xRg Is Nothing Then Exit Sub
      Target.Worksheet.Unprotect Password:="123"
      xSRg.Locked = True
      Target.Worksheet.Protect Password:="123"
      End Sub
  • To post as a guest, your comment is unpublished.
    jackie · 1 years ago
    Hi


    i want it to lock the range after entry into one cell in the range please can you advise how i need to edit this to do this thank you
  • To post as a guest, your comment is unpublished.
    oh yeah · 1 years ago
    is it have to coding?
  • To post as a guest, your comment is unpublished.
    Palash Somani · 1 years ago
    cells are not even editable...what went wrong don't understand pls help
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good Day,
      At first, you need to set specified cells to Unlocked for editig, and then protect the worksheet. And finally apply the VBA script.
  • To post as a guest, your comment is unpublished.
    Akshay · 1 years ago
    Hi,
    Sir i want to lock after one time input data !
    Like i am following one customer and write status , then any more employee cant edit or modify that !
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good Day,
      Method in this post can also help you to solve this problem.
  • To post as a guest, your comment is unpublished.
    Fair · 1 years ago
    Thanx for the coding, but I've a problem to put 2 coding in 1 sheet, pls help.
  • To post as a guest, your comment is unpublished.
    Subhash Deb · 2 years ago
    i like to lock only the edited cells. once i enter any data to the empty cells, i require to lock the edited cell to be automitically locked but not the empty cells.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Subhash,
      After using the code, only the edited cells are locked in the specified range. And you can still enter data into the empty cells in the specified range as you need. After fill in the blank cell, it will be locked automatically.
      • To post as a guest, your comment is unpublished.
        pradip · 1 years ago
        No, it locks the whole range at once after a data input into a cell in the range
        • To post as a guest, your comment is unpublished.
          crystal · 1 years ago
          Dear pradip,
          Which Office version do you use?
  • To post as a guest, your comment is unpublished.
    Jezamiah · 2 years ago
    For anyone who might have stumbled here since this comment.
    If you are having to unlock the worksheet EVERYTIME you fill in a cell then you need to first,

    - Unlock the spreadsheet
    - Highlight the area of the worksheet the code applies over
    - Right-click and go to 'format cells'
    - Go to the far right tab called 'Protection' and UNCHECK the 'Locked' section (Even if It appears as a solid fill instead of a tick)

    After that you will be able to enter data in multiple cells without having to unlock everytime. Bear in mind if you need to revisit locked cells to delete or edit information you may need to repeat the steps above.

    Hope this helps.
  • To post as a guest, your comment is unpublished.
    Stacy · 2 years ago
    I tried the code and seemed to work somewhat. It does however allow me to delete the date entered into the cell but only stops me when I try to enter something else. Is there a way to keep data from being deleted?
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Stacy,
      The same problem does not appear in my case. The code prevent users from entering as well as deleting data from the specified range. Would you provide your Office version for further testing?
  • To post as a guest, your comment is unpublished.
    Gourav Goya · 2 years ago
    Hello Sir ,

    I am facing one problem with the same code while using this code with other cobe in VBA.

    Please suggest me some solution

    Thanks and Regards
    Gourav
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Gourav,
      Sorry can't solve this problem.
  • To post as a guest, your comment is unpublished.
    rsrneuro · 2 years ago
    Thanks for the code. Please let me know how to do auto lock the cells (similar to the ones listed by you) ONLY AFTER saving the file
  • To post as a guest, your comment is unpublished.
    spence · 2 years ago
    Try this code instead:


    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MyRange As Range

    Set MyRange = Intersect(Range("A1:D100"), Target)
    If Not MyRange Is Nothing Then
    Sheets("Sheet1").Unprotect password:="hello"
    MyRange.Locked = True
    Sheets("Sheet1").Protect password:="hello"
    End If
    End Sub


    And remember to change range (A1:D100), password (hello) and sheet (Sheet1) names/numbers if it does not match the above :)
  • To post as a guest, your comment is unpublished.
    Nitin Ingole · 2 years ago
    This is not working when it reopen excel file please help
  • To post as a guest, your comment is unpublished.
    Pravallika p · 2 years ago
    Hello,

    I have a spreadsheet with the range A3:AN219, i would like to protect this range as and when input complete.
    Please help me on this. I tried above code but it is not working for me