
Ich habe eine Excel-Tabelle, in der 3 Spalten (A, B und C) eine eindeutige Kennung für jede Zeile bilden, die Werte in den Spalten jedoch nicht eindeutig sind. Beispiel:
ABC REF 001
ABC REF 002
ABC REF 003
ABC DOC 001
ABC DOC 002
ABC DOC 003
Die obigen Zeilen sind gültig, da keine Zeile die gleiche Wertekombination aufweist (z. B. gibt es keine zwei Zeilen mit „ABC REF002“, auch wenn die Spalten B und C Duplikate aufweisen).
Wie kann ich eine Excel-Validierung hinzufügen, sodass ein Validierungsfehler auftritt, wenn der Benutzer eine Wertekombination in den Spalten A, B und C eingibt, die mit der Kombination einer anderen Zeile übereinstimmt?
Antwort1
Geben Sie das folgende Ereignismakro in den Codebereich des Arbeitsblatts ein:
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
Da es sich um Arbeitsblattcode handelt, ist er sehr einfach zu installieren und automatisch zu verwenden:
- Klicken Sie mit der rechten Maustaste auf den Registerkartennamen unten im Excel-Fenster
- Wählen Sie „Code anzeigen“ – dadurch wird ein VBE-Fenster geöffnet
- Füge das Material ein und schließe das VBE-Fenster
Wenn Sie Bedenken haben, probieren Sie es zunächst auf einem Probearbeitsblatt aus.
Wenn Sie die Arbeitsmappe speichern, wird das Makro mit gespeichert. Wenn Sie eine neuere Version von Excel als 2003 verwenden, müssen Sie die Datei speichern als.xlsmstatt.xlsx
So entfernen Sie das Makro:
- Rufen Sie die VBE-Fenster wie oben auf
- Löschen Sie den Code
- Schließen Sie das VBE-Fenster
Weitere Informationen zu Makros im Allgemeinen finden Sie unter:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
Und
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Weitere Informationen zu Ereignismakros (Arbeitsblattcode) finden Sie unter:
http://www.mvps.org/dmcritchie/excel/event.htm
Damit dies funktioniert, müssen Makros aktiviert sein!