Excel...como hago para restringir ingresos solo a 1 celda?

En excel como hago para que al ingresar un dato a una celda... ¿las otras celdas de un rango se bloqueen y no permitan ingresar datos? Es decir, de un rango se permite elegir una sola celda para ingresar datos

1 respuesta

Respuesta
1

Prueba con la siguiente macro.

Cambia "C2:C6" por el rango que vas a validar.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por Dante Amor
    'Permite ingresar un dato solamente en una celda del rango
    Set rango = Range("C2:C6")
    If Not Intersect(Target, rango) Is Nothing Then
        If Target.Count > 1 Then
            MsgBox "Solamente se permite modificar una celda"
            Application.EnableEvents = False
            For Each c In Target
                c.Value = ""
            Next
            Application.EnableEvents = True
        Else
            ActiveSheet.Unprotect "abc"
            rango.Locked = True
            Target.Locked = False
            ActiveSheet.Protect "abc"
        End If
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro

Para que las celdas de una hoja queden bloqueadas, la hoja debe quedar protegida

Cambia en la macro "abc" por el password que desees para proteger la hoja.


Funciona de esta forma, captura un dato en una celda de tu rango, después de presionar enter, las demás celdas del rango quedarán bloqueadas y la hoja protegida.


Si no es lo que necesitas, entonces podrías poner imágenes de lo que tienes, explicando con los ejemplos de tu imagen cómo quieres que funcione.


hola...no se si el ejemplo explica lo que necesito. Solo puede ingresarse datos en una de las celdas coloreadas, para evitar doble ingreso por error. Como se hace cuando son varias columnas, una para cada proveedor?. Muchas gracias de antemano.

PD: probé la macro que propones y no me resulta...debo estar haciendo algo mal. 

Según tu imagen, la macro quedaría así:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por Dante Amor
    'Permite ingresar un dato solamente en una celda del rango
    Set rango = Range("C7:C9")
    If Not Intersect(Target, rango) Is Nothing Then
        If Target.Count > 1 Then
            MsgBox "Solamente se permite modificar una celda"
            Application.EnableEvents = False
            For Each c In Target
                c.Value = ""
            Next
            Application.EnableEvents = True
        Else
            ActiveSheet.Unprotect "abc"
            rango.Locked = True
            Target.Locked = False
            ActiveSheet.Protect "abc"
        End If
    End If
End Sub

Importante: La macro la tienes que poner en los eventos de tu hoja

muchisimas gracias de nuevo y perdona mi ignorancia...como lo pongo en los eventos de mi hoja?. Tampoco me resultó cuando probé tu primera sugerencia...no entendí las instrucciones: todas las celdas de la hoja debo configurarlas como "bloqueadas"?, debo Proteger la hoja con contraseña antes de ingresar los datos? en ese caso las celdas de ingreso debería dejarlas como no bloqueadas? Te repito, disculpa mi ignorancia.

Primero selecciona todas las celdas, entra al Menú Inicio, Formato, Formato de celdas, selecciona la pestaña Proteger, desmarca la casilla Bloqueda. Presiona Aceptar.

Después pones la última macro que te envié en los eventos de tu hoja, tienes que seguir estos pasos:

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, busca el nombre de tu hoja y dale doble click a worksheet(y el nombre de tu hoja)
  4. En el panel del lado derecho copia la macro

Regresa a tu hoja y escribe un dato en la celda C8, en automático las celdas C7 y C9 se bloquean.


Si todavía tienes dificultades para poner la macro, envíame tu archivo y la adapto.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “luis fierro


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas