Bloquear celdas SOLO cuando tenga valor (antes debe estar libre)

Pido su apoyo debido a que tengo que hacer la siguiente actividad en EXCEL 2010

En la columna D10 tengo una validacion de datos con lista. Al seleccionar una opcion, en la columna E10 aparece un
Resultado (para cada opcion de la lista aparece un resultado diferente)

Lo que necesito que es una vez que seleccione un valor de la lista en D10 y aparecio un resultado en E10,
la celda G10 Y H10 se bloqueen (ANTES NO DEBEN ESTAR BLOQUEADAS)
Solo se deben bloquear hasta que en E10 aparezca valor

Lo mismo debe repetirse cuando selecciono valor en D11 y refleja valor en E11 (se debe bloquear G11 Y H11), D12 y refleja valor en E12(se debe bloquear G12 y H12), ETC

NOTA; todas las demas celdas deben permanecer SIN BLOQUEAR

Adjunto imágenes para tratar de explicar

Respuesta
2

Necesitas una macro que controle el cambio en col D.

Con ALT + F11 entras al Editor de macros. Desde el panel a tu izquierda (Microsoft Excel Objetos) seleccioná con doble clic la HOJA donde vas a trabajar y allí copiá este código:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'controla el ingreso de datos en col D
If Target.Column = 4 And Target.Count = 1 Then
    'si no se está borrando un rango de celdas y no se trata de NA
    If Target.Value <> "" And Target.Value <> "NA" Then   'ajustar texto
        'se desprotege, se bloquea las col G:H y se vuelve a proteger
        ActiveSheet.Unprotect "tu_clave"   'AJUSTAR CLAVE
        Range("G" & Target.Row).Locked = True
        Range("H" & Target.Row).Locked = True
        ActiveSheet.Protect "tu_clave"     'AJUSTAR CLAVE
    End If
End If
End Sub

Ajustá el texto por defecto (NA). Si tu hoja se protege sin clave omití el texto "tu_clave".

Sdos y no olvides valorar la respuesta (con opción excelente o buena)

¡Gracias! 

Probé el código en una hoja (con las celdas sin protección) y funciona muy bien.

Muchas Gracias Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas