
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:
- haga clic derecho en el nombre de la pestaña cerca de la parte inferior de la ventana de Excel
- seleccione Ver código; esto abre una ventana de VBE
- 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:
- abra las ventanas de VBE como se muestra arriba
- borrar el código
- 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!