H o l a:
Primero, vamos a bloquear todas las celdas que ya tienen una "X". Ejecuta la siguiente macro sobre la hoja que tiene las "X":
Sub BloquearX()
'Por.Dante Amor
ActiveSheet.Unprotect "abc"
ActiveSheet.Cells.Locked = False
Application.EnableEvents = False
For Each c In ActiveSheet.UsedRange
If c.Value = "X" Or c.Value = "x" Then
c.Value = "X"
c.Locked = True
End If
Next
Application.EnableEvents = True
ActiveSheet.Protect "abc"
MsgBox "Terminado"
End Sub
Cambia "abc" por el password que desees.
Después pon la siguiente macro en los eventos de la misma hoja:
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
If Not Intersect(Target, Range("D:U")) Is Nothing Then
If Target.Row > 5 And Target.Column <> Columns("I").Column Then
For Each c In Target
Select Case c.Value
Case "X"
ActiveSheet.Unprotect "abc"
c.Locked = True
ActiveSheet.Protect "abc", DrawingObjects:=False, _
Contents:=True, Scenarios:=False, _
AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingHyperlinks:=True, _
AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
Case ""
Case Else
MsgBox "Sólo es posible poner la 'X'", vbExclamation
c.Value = ""
c.Select
End Select
Next
End If
End If
End Sub
Cambia el password "abc" por el que desees.
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
- Del lado derecho copia la macro
Listo, ahora solamente podrán capturar "X" en las columnas de la "D:U", excepto la "I". Si ponen otra cosas les envía un mensaje. La hoja estará protegida.