Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1012to1016
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Gültigkeit: Liste und Formel kombinierbar?

Gültigkeit: Liste und Formel kombinierbar?
25.09.2008 15:00:00
David
Hallo zusammen.
Ich habe in einer Tabelle mehrere Felder, die über eine Daten-Gültigkeit mit einer Liste verknüpft sind.
Nun kommt als zweites Kriterium hinzu, dass jeder Wert aus der Liste nur einmal vorhanden sein darf. Per benutzerdefinierter Gültigkeitsformel würde ich das prinzipiell so hinbekommen:
=UND(ISTFEHLER(VERGLEICH(C2;D2:I2;0));ISTFEHLER(VERGLEICH(C2;B2:B2;0)))
Ich habe aber nur die Möglichkeit, als Gültigkeit eine Liste ODER eine Formel anzugeben.
Oder gibt es eine Möglichkeit, das zu kombinieren?
Falls nein, wäre mein nächster Gedanke, die betreffenden Zellen per Worksheet-Change zu überwachen und auf Doppelungen prüfen zu lassen. Ich denke, das kriege ich auch noch hin.
Aber vielleicht hat ja jemand noch einen guten Tip für mich?!
Gruß
David

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gültigkeit: Liste und Formel kombinierbar?
25.09.2008 16:08:24
Jürgen
Hallo David,
wenn es akzeptabel ist, dass in der DropDownliste leere Zeilen enthalten sind, wäre folgendes denkbar:
neben der Liste mit den gültigen Werten wird eine Hilfsspalte angelegt. Sie enthält den Listwert, wenn er noch nicht im Eingabebereich verwendet wurde, sonst nichts. Wenn der Eingabebereich (also der mit der Gültigkeits-Dropdownliste) z.B. F5 bis F9 ist und die gültigen Werte bislang in H5 bis H9 standen, könnte die Formel in I5 (und I6 bis I9 entsprechend) lauten:
=Wenn(IstNV(Vergleich(H5;$f$5:$f:9;0));H5;"")
Bezieht man die Gültigkeitsprüfung nun auf I5:I9, sind nur noch die unbenutzen Werte oder ein leerer Eintrag auswählbar.
Gruß, Jürgen
Anzeige
AW: Gültigkeit: Liste und Formel kombinierbar?
25.09.2008 16:39:00
Jürgen
Hallo David,
hier noch eine Ergänzung, um auch die leeren Einträge zu vermeiden:
Ausgehend von den vorhergenannten Bereichen wird eine weitere Hilfsspalte in J gefüllt, die lückenlos untereinander die "unverbrauchten" Werte aus Spalte I enthält. Dazu dient die Arrayformel (Formel inJ5 einfügen und herunterkopieren):
=WENN(ZEILE(I1)>ANZAHL2(I:I)+5;"";INDEX(I:I;KKLEINSTE(WENN(I$1:I$1000<>"";ZEILE($1:$1000)); ZEILE(A1))))
Die so erstellte Liste enthält leider am Ende für jeden verbrauchten Wert eine Zelle mit Inhalt "#Zahl!". Um nur noch die gültigen Werte aus dem oberen Bereich der Liste in Spalte J zu erhalten, legt man zusätzlich einen dynamischen Bereichsnamen (z.B. "Gueltig") über "Einfügen - Namen - Definieren" an. Dazu trägt man im Feld "Bezieht sich auf:" folgende Formel ein:
=BEREICH.VERSCHIEBEN(Tabelle1!$J$4;0;0;ANZAHL(Tabelle1!$J$5:$J$9)+1;1)
Diesen Bereichsnamen legt man nun als Quelle für die Gültigkeitsliste fest. Der Bereich beginnt übrigens bewußt eine Zeile zu früh (J4), um noch einen leeren Eintrag am Anfang der Liste zu haben. Sonst ließe sich die DropDown-Liste nicht mehr öffnen, wenn alle gültigen Werte verbraucht sind.
Gruß, Jürgen
Anzeige
AW: Gültigkeit: Liste und Formel kombinierbar?
26.09.2008 08:29:00
David
Hallo Jürgen,
vielen Dank. Dieser Lösungsweg erscheint mir sehr akzeptabel. Zwar bedingt das einige "Hilfs-Listen" mehr, aber das kann man ja recht einfach ausblenden.
Eigentlich hätte ich da auch selbst drauf kommen können, zumal ich vor kurzem eine ähnliche "dynamische" Auswahlliste erstellt habe. Da ging es darum, in einer Dropdownliste nur den letzten Wert und den nächstfolgenden Wert darzustellen.
Naja, manchmal ist man halt betriebsblind.
Gruß
David
AW: Gültigkeit: Liste und Formel kombinierbar?
26.09.2008 09:16:00
David
Hallo Jürgen,
eine Änderung ist noch notwendig. Deine 'Bereich.Verschieben'-Formel funzt so bei mir nicht, da 'Anzahl' nur die Zahlen zählt, in meinem Fall jedoch Texte in der Liste stehen. 'Anzahl2' geht auch nicht, da dann die Fehlerzellen mitgezählt werden.
Ich habe mir deshalb eine Matrixformel gebastelt, die's tut:
=BEREICH.VERSCHIEBEN(Tabelle1!$L$21;;;SUMME(WENN(ISTFEHLER(Tabelle1!$L$22:$L$29);0;1))+1)
Glücklicherweise funzt diese Formel auch als Matrixformel in der Namensdefinition (ohne {}).
Einen Haken hat die ganze Sache allerdings:
Die Auswahllisten werden zwar reduziert, eine manuelle Eingabe bereits vorhandener Werte ist allerdings trotzdem noch möglich. (sollte bei mir nicht das große Problem sein, da die Text recht "kryptisch" sind und nur recht umständlich manuell einzugeben sind) Nunja, man kann halt nicht alles haben. ;-)
Gruß
David
Anzeige
AW: Gültigkeit: Liste und Formel kombinierbar?
25.09.2008 17:24:50
Luschi
Hallo David,
hier mal eine Vba-Variante, wo alle mehrfach vorkommenden Werte ignoriert werden:
https://www.herber.de/bbs/user/55661.xls
Gruß von Luschi
aus klein-Paris
AW: Gültigkeit: Liste und Formel kombinierbar?
26.09.2008 08:24:00
David
Hallo Luschi,
interessante Variante, aber leider am Problem vorbei. Vielleicht habe ich mich mißverständlich ausgedrückt. Es ging nicht darum, die Gültigkeitsliste ohne mehrfach vorkommende Werte darzustellen, sondern mehrere Zellen, die per Gültigkeit eingeschränkt sind, wechselseitig voneinander abhängig zu machen. D.h. wenn in einer Zelle ein Wert ausgewählt wurde, darf der in der anderen Zelle nicht mehr auswählbar sein.
Für alle, die im Archiv später mal diesen Beitrag finden:
Ich habe das jetzt per VBA selbst so gelöst:

Private Sub worksheet_change(ByVal target As Range)
Dim i As Byte
If Not Intersect(target, [B2:I2]) Is Nothing Then
For i = 2 To 8
If i  target.Column Then
If Cells(2, i) = target.Value Then MsgBox "Der Wert  ist  _
bereits in Spalte " & i & " enthalten. Bitte wählen Sie einen neuen Wert aus der Liste."
End If
Next
End If
End Sub


Dies lässt die Eingaben zwar immer noch zu, aber zumindest bekommt der User eine Warnung. Ich bin noch am Grübeln, wie ich es verhindern kann, dass der User per Mausklick die Zelle verlässt (do loop?), aber das ist erstmal sekundär.
Der Vorschlag von Jürgen erscheint mir allerdings auch recht praktikabel. Dass in der Liste dann halt ein paar Leerzeilen auftauchen, ist m. E. akzeptabel.
Gruß
David

Anzeige
AW: Gültigkeit: Liste und Formel kombinierbar?
26.09.2008 09:08:00
Luschi
Hallo David,
hier die von Dir gewünschten Einschränkungen für 3 Gültigkeitslisten mit der gleichen Datenquelle:
https://www.herber.de/bbs/user/55670.xls
Gruß von Luschi
aus klein-Paris
AW: Gültigkeit: Liste und Formel kombinierbar?
26.09.2008 09:37:19
David
Hallo Luschi,
interessanter Ansatz. Dazu allerdings einige Fragen:
In meinem Fall sind das um einiges mehr als 3 Zellen, eher im Bereich 10-15. Wenn ich deinen Code richtig interpretiere, müsste ich zunächst diesen Teil

Select Case Target.Address(False, False)
Case "D3": r1 = "D3": r2 = "F3": r3 = "H3"
Case "F3": r1 = "F3": r2 = "D3": r3 = "H3"
Case "H3": r1 = "H3": r2 = "D3": r3 = "F3"
End Select


erweitern, und anschließend diese If-Verschachtelung


If (rg2.Value  ActiveSheet.Range(r2).Value) Then
If (rg2.Value  ActiveSheet.Range(r3).Value) Then
col.Add key:=CStr(rg2.Value), Item:=rg2.Value
End If
End If


in so viele Ebenen verschachteln, wie Zellen vorhanden sind. Das erscheint mir doch recht unpraktisch und unübersichtlich.
Manuelle Eingaben sind in die Zellen mit deinem Code gar nicht mehr möglich, oder?!
Gruß
David

Anzeige
AW: Gültigkeit: Liste und Formel kombinierbar?
26.09.2008 12:33:15
Luschi
Hallo David,
hier eine neue Version, jetzt muß man nur noch in der Variablen 's1' alle Zellen angeben, die
im Gültigkeitslisten-Verbund mitwirken.
https://www.herber.de/bbs/user/55681.xls
Gruß von Luschi
aus klein-Paris

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige