La verificación del valor de la celda objetivo coincide con el valor del rango de celdas
Me gustaría configurar una verificación de entrada en el archivo marco de Excel. Cuando el usuario ingresa la columna registrada por y presiona Intro, ¿cómo hacer que VBA verifique que el valor de la celda objetivo (Columna F:F) coincida con uno de los valores del rango de celdas (Columna AB3:AD6)?
For example:
Column F8 Jimmy <-> Column AB3:AD6 [TRUE]
Column F9 Johnny <-> Column AB3:AD6 [FALSE]
Gracias.
Aceptado
- Haga clic derecho en la pestaña de la hoja> Ver código> pegue el código
MsgBox
es solo una demostración, modifíquela según sea necesario
Private Sub Worksheet_Change(ByVal Target As Range)
Const LIST_RNG = "AB3:AD6"
With Target
If .CountLarge = 1 Then
' If Not Application.Intersect(Target, Me.Range("A1:B10")) Is Nothing Then
If .Column = 6 And .Row > 7 And Len(.Value) > 0 Then
Application.EnableEvents = False
Dim c As Range
Set c = Me.Range(LIST_RNG).Find(.Value, LookIn:=xlValues, Lookat:=xlWhole)
If c Is Nothing Then
MsgBox "Bad"
' Clear user input, modify as needed
.Value = ""
.Select
Else
MsgBox "Good" ' modify as needed
End If
Application.EnableEvents = True
End If
End If
End With
End Sub
Documentación de Microsoft:
Método Range.Find (Excel)
Hoja de trabajo. Evento de cambio (Excel)