Ich habe zwei Sätze dynamischer Listen, List1
undList2
Listen werden mit OFFSET und COUNTA erstellt, sodass neue Einträge in der Liste enthalten sind usw.
In Zelle A1 möchte ich die Datenüberprüfungslistenfunktion verwenden, aber ich möchte, dass sie auf BEIDE dieser Listen verweist.
Mir wurde gesagt, dass dies per VBA erledigt werden müsste?
Irgendwelche Vorschläge ?
Ich verwende derzeit:
=(COUNTIF(list1,A1)+COUNTIF(list2,A1))>=1
Im Abschnitt „Benutzerdefiniert“, aber dies erlaubt mir nicht, die Dropdown-Liste zu haben
Antwort1
Sie können ein Makro verwenden, um die Werte in eine einzige Liste zu zwingen
Sub Validation()
Dim a$, el As Range
' SET THE LIST RANGE, YOU CAN USE MORE THAN 2
Dim rng1 As Range, rng2 As Range
'DEFINE THE CELLS USED FOR THE LIST, NAMED RANGE OR INDIRECT CAN BE USED
Set rng1 = Range("List1")
Set rng2 = Range("List2")
'COLLECT VALUES FROM LISTS
For Each el In rng1
a = a & el.Value & ","
Next
For Each el In rng2
a = a & el.Value & ","
Next
' SET DESTIANTION OF DATA VALIDATION RULE
With Range("A1").Validation
.Delete
.Add Type:=xlValidateList, Formula1:=a
End With
Set rng1 = Nothing
Set rng2 = Nothing
End Sub
Der einzige Nachteil ist, dass das Makro jedes Mal ausgeführt werden muss, wenn Sie Ihrer Liste einen Wert hinzufügen. Sie könnten dies möglicherweise über eine Arbeitsmappenänderung einfügen.