Validar que una combinación de celdas sea única en una fila en Excel

Validar que una combinación de celdas sea única en una fila en Excel

Tengo una hoja de Excel donde 3 columnas (A, B y C) forman un identificador único para cada fila, pero los valores de las columnas no son únicos. Por ejemplo:

   ABC    REF   001
   ABC    REF   002
   ABC    REF   003
   ABC    DOC   001
   ABC    DOC   002
   ABC    DOC   003

Las filas anteriores son válidas, porque ninguna fila tiene la misma combinación de valores (por ejemplo, no hay dos filas con "ABC REF002", incluso si hay duplicados de las columnas B y C)

¿Cómo puedo agregar una validación de Excel de modo que si el usuario ingresa una combinación de valores en las columnas A, B y C que coincida con la combinación de otra fila, se produzca un error de validación?

Respuesta1

Ingrese la siguiente macro de evento en el área de código de la hoja de trabajo:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long, st As String, J As Long, k As Long
    Dim CH As String

    If Intersect(Range("A:C"), Target) Is Nothing Then Exit Sub
    CH = Chr(1)
    I = Target.Row
    J = Cells(Rows.Count, 1).End(xlUp).Row
    st = Cells(I, 1).Text & CH & Cells(I, 2).Text & CH & Cells(I, 3).Text

    For k = 1 To J
        If k <> I Then
            stk = Cells(k, 1).Text & CH & Cells(k, 2).Text & CH & Cells(k, 3).Text
            If st = stk Then
                MsgBox "Combination already in use:" & vbCrLf & stk
                Exit Sub
            End If
        End If
    Next k

End Sub

Debido a que es código de hoja de trabajo, es muy fácil de instalar y automático de usar:

  1. haga clic derecho en el nombre de la pestaña cerca de la parte inferior de la ventana de Excel
  2. seleccione Ver código; esto abre una ventana de VBE
  3. pegue las cosas y cierre la ventana de VBE

Si tiene alguna inquietud, primero pruébelo en una hoja de trabajo de prueba.

Si guarda el libro, la macro se guardará con él. Si está utilizando una versión de Excel posterior a 2003, debe guardar el archivo como.xlsmen vez de.xlsx

Para eliminar la macro:

  1. abra las ventanas de VBE como se muestra arriba
  2. borrar el código
  3. cerrar la ventana VBE

Para obtener más información sobre las macros en general, consulte:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

y

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Para obtener más información sobre las macros de eventos (código de la hoja de trabajo), consulte:

http://www.mvps.org/dmcritchie/excel/event.htm

¡Las macros deben estar habilitadas para que esto funcione!

información relacionada