Ayuda con codigo vba, Impedir datos en celdas.
Publicado por Forero (2 intervenciones) el 23/07/2019 10:30:47
Buenas chicos.
Tengo una hoja excel con unas 400 celdas (combinadas de diferentes tamaños) que simulan una excavación arqueológica.
Cuando en una de esas celdas pongo un "1" se ponen de un color, con un "2" de otro, y asi hasta el "5".
Hay celdas que solo pueden ir con el número "1" y otras solo con el resto "2-3-4-5". La idea es conseguir que en las celdas que SOLO pueden tener un "1" de alguna forma se impida meter otro número o si se hace que se borre.
Para las celdas que solo admiten el "1" he usado este código que avisa que no se puede poner ese número y borra el contenido.
Y para las celdas solo admiten el "2-3-4-5" este otro código.
Alguna otra solución? ya que hacer esto por cada celda es una currada.
Las celdas combinadas donde solo puede ir el "1" son de dos celdas A1:A2 por ejemplo y las otras son de 5 celdas A3:A7.
Gracias.
Tengo una hoja excel con unas 400 celdas (combinadas de diferentes tamaños) que simulan una excavación arqueológica.
Cuando en una de esas celdas pongo un "1" se ponen de un color, con un "2" de otro, y asi hasta el "5".
Hay celdas que solo pueden ir con el número "1" y otras solo con el resto "2-3-4-5". La idea es conseguir que en las celdas que SOLO pueden tener un "1" de alguna forma se impida meter otro número o si se hace que se borre.
Para las celdas que solo admiten el "1" he usado este código que avisa que no se puede poner ese número y borra el contenido.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("BH4") > "1" Then
MsgBox "Esta excavación no permite este código. Insertar 1"
Range("BH4:BH5").ClearContents
ElseIf Range("BJ4") > "1" Then
MsgBox "Esta excavación no permite este código"
Range("BJ4:BJ5").ClearContents
ElseIf Range("BL4") > "1" Then
MsgBox "Esta excavación no permite este código"
Range("BL4:BL5").ClearContents
End If
End Sub
Y para las celdas solo admiten el "2-3-4-5" este otro código.
1
2
3
4
5
6
ElseIf Range("BH6") = "1" Then
MsgBox "Esta excavación no permite este código. Inserta 2, 3, 4 o 5"
Range("BH6:bH10").ClearContents
ElseIf Range("BJ6") = "1" Then
MsgBox "Esta excavación no permite este código. Inserta 2, 3, 4 o 5"
Range("BJ6:bJ10").ClearContents
Alguna otra solución? ya que hacer esto por cada celda es una currada.
Las celdas combinadas donde solo puede ir el "1" son de dos celdas A1:A2 por ejemplo y las otras son de 5 celdas A3:A7.
Gracias.
Valora esta pregunta


0