Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Gültigkeits-Dropdown eingrenzen

Forumthread: Gültigkeits-Dropdown eingrenzen

Gültigkeits-Dropdown eingrenzen
24.07.2004 18:22:45
Jürgen
Folgendes Problem:
Ich habe in Tabelle 1 eine Liste mit 10 Zellen z.B. B10:B19 erstellt und diesen Bereich "Antworten" benannt.
In Tabelle 2 gibt es nun für einen Bereich D20:D29 in den Zellen jeweils Dropdowns welche über die Gültigkeitsfunktion auf den Bereich in Tabelle 1 greifen, was auch problemlos funktioniert.
Da jeder dieser 10 Werte allerdings nur einmal genutzt werden soll/darf würde ich gerne das ganze so einstellen das die Auswahl im Dropdown sich um die bereits benutzen Möglichkeiten der Liste verkürzt.
Wäre prima wenn jemand einen Denkansatz oder besser eine Lösung für mich hätte.
Danke im Voraus.
Jürgen
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gültigkeits-Dropdown eingrenzen
Kai
Hi Jürgen,
schau mal unter
https://www.herber.de/bbs/user/8857.xls
Da habe ich eine Datei abgelegt, die Deine Wünsche erfüllen dürfte.
Spalte A: Die aktuelle Auswahl mit Anpassung an bereits ausgewählte Einträge
Spalte B: Die eigentliche Liste, welche Werte überhaupt erlaubt sind
Spalte C: Hier wählt man die Werte aus
Der gelbe Eingabebereich wird rot, wenn jemand einen Wert auswählt, der bereits als "verwendet" markiert wurde.
Probier einfach mal rum und melde Dich, wenn was nicht passt.
Kai
Anzeige
AW: Gültigkeits-Dropdown eingrenzen
24.07.2004 20:40:52
Nepumuk
Hallo Jürgen,
das ganze per VBA:


Option Explicit
Option Base 1
Public Sub proc_init()
    Dim intIndex1 As Integer, intIndex2 As Integer, varListe As Variant, strListe As String
    varListe = Array("rot", "grün", "blau", "gelb", "schwarz", "weis", "lila", "rose", "lachs", "bunt")
    For intIndex1 = 20 To 29
        For intIndex2 = 1 To 10
            If varListe(intIndex2) = Cells(intIndex1, 4) Then varListe(intIndex2) = ""
        Next
    Next
    For intIndex1 = 1 To 10
        If varListe(intIndex1) <> "" Then strListe = strListe & varListe(intIndex1) & ","
    Next
    If strListe <> "" Then strListe = Left$(strListe, Len(strListe) - 1) Else strListe = " "
    With Range(Cells(20, 4), Cells(29, 4)).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=strListe
    End With
End Sub


In das Klassenmodul der Tabelle folgenden Code:


Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 4 And Target.Row > 19 And Target.Row < 30 Then Call proc_init
End Sub


Gruß
Nepumuk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige