La verificación del valor de la celda objetivo coincide con el valor del rango de celdas

Resuelto user11343272 asked hace 9 meses • 1 respuestas

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]

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Gracias.

user11343272 avatar Feb 16 '24 10:02 user11343272
Aceptado
  • Haga clic derecho en la pestaña de la hoja> Ver código> pegue el código
  • MsgBoxes 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)

taller avatar Feb 16 '2024 03:02 taller