Validar un dato al ingresarlo a una celda

Hola Nefese.. Muchas gracias por tu colaboración...
Quería saber si me puedes ayudar con lo siguiente..
Tengo una hoja de excel en la cual voy ingresando datos solo en una columna Ej: A1:An (n numero no definido)
La idea es que por ejemplo voy digitando así:
123
324
768
234
Y si llevo muchos ej 20,30,100 o más, y más adelante repito el 123
.
.
123... Al dar enter me salga un mensaje que me diga que ese código ya fue digitado..
Me podrías ayudar con algo para este objetivo
Gracias por tu colaboración

1 Respuesta

Respuesta
1
Te dejo el código que notifica cuando un registro se encuentra repetido (también resalta los registros que están repetidos). Saludos (Me avisas si anda)
**************
Private Sub Worksheet_Change(ByVal Target As Range)
''Creada por FSerrano en 110525
''para dfcalderon en TodoExpertos.com
'Establece el control de cambio sobre la columna actual
If Target.Column = ActiveCell.Column Then
    'Compara la condición, si existe más de un registro con valor idéntico al recién ingresado la condición es verdadera
    If Application.WorksheetFunction.CountIf(Range(Cells(1, ActiveCell.Column).Address, _
    Cells(ActiveCell.Row - 1, ActiveCell.Column).Address), ActiveCell.Offset(-1, 0).Value) _
    > 1 Then
        'captura la posición actual para volver a ella luego de realizado el proceso
        donde = ActiveCell.Address
        'Muestra un mensaje de advertencia
a = MsgBox("El valor ya fue ingresado", vbCritical, "REGISTRO DUPLICADO")
        'Selecciona los registros ingresados hasta el momento
        Range(Cells(1, ActiveCell.Column), Cells(ActiveCell.Row - 1, ActiveCell.Column)).Select
        'Aplica el formato condicional para mostrar resaltados en rojo los valores duplicados
        Selection.FormatConditions.AddUniqueValues
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        Selection.FormatConditions(1).DupeUnique = xlDuplicate
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 255
            .TintAndShade = 0
        End With
        Selection.FormatConditions(1).StopIfTrue = False
        'vuelve a la celda 'activa'
        Range(donde).Activate
    End If
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas