Excel Liste mit Datenüberprüfung anlegen und anschließend selektieren ????
Hallo,
ich habe in Excel eine Mitarbeiterliste erstellt.
Diese einen Namen vergeben und über Datenüberprüfung - Liste diese angesprochen.
Somit können die MA mit Hilfe der Dropdownbox ausgewählt werden.
Jetzt möchte ich aber, das wenn ich einen MA in einer Zelle ausgewählt habe, dieser in einer anderen Zelle in der Auflistung nicht mehr auftaucht, da er ja schon im Schichtplan eingetragen wurde.
Was kann ich tun?
ich habe in Excel eine Mitarbeiterliste erstellt.
Diese einen Namen vergeben und über Datenüberprüfung - Liste diese angesprochen.
Somit können die MA mit Hilfe der Dropdownbox ausgewählt werden.
Jetzt möchte ich aber, das wenn ich einen MA in einer Zelle ausgewählt habe, dieser in einer anderen Zelle in der Auflistung nicht mehr auftaucht, da er ja schon im Schichtplan eingetragen wurde.
Was kann ich tun?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 264648
Url: https://administrator.de/forum/excel-liste-mit-datenueberpruefung-anlegen-und-anschliessend-selektieren-264648.html
Ausgedruckt am: 21.04.2025 um 14:04 Uhr
10 Kommentare
Neuester Kommentar
Hallo!
Die Auswahl erfolgt also über Dropdownbox
Die Auswahl erfolgt doch wieder in einer Zelle??
Kannst du dein Problem etwas nachvollziehbar schildern oder sogar einen Screenshot des Arbeitsblattes bereitstellen?
Gruß
Eisbein
Somit können die MA mit Hilfe der Dropdownbox ausgewählt werden.
Die Auswahl erfolgt also über Dropdownbox
das wenn ich einen MA in einer Zelle ausgewählt habe, dieser in einer anderen Zelle in der Auflistung nicht mehr auftaucht,
Die Auswahl erfolgt doch wieder in einer Zelle??
Was kann ich tun?
Kannst du dein Problem etwas nachvollziehbar schildern oder sogar einen Screenshot des Arbeitsblattes bereitstellen?
Gruß
Eisbein
Nun, das Problem bei Dropdown ist, dass der Inhalt nur bedingt dynamisch verändert werden kann, da er an einen Bereich gebunden ist.
Was allerdings möglich wäre - das Tabellenblatt nach der aktuellen Auswahl im Dropdown zu durchsuchen und bei Erfolg eine Nachricht auszugeben und die Auswahl zu verweigern.
Dazu verweise ich mal -> http://www.ms-office-forum.net/forum/showthread.php?t=169590
Was allerdings möglich wäre - das Tabellenblatt nach der aktuellen Auswahl im Dropdown zu durchsuchen und bei Erfolg eine Nachricht auszugeben und die Auswahl zu verweigern.
Dazu verweise ich mal -> http://www.ms-office-forum.net/forum/showthread.php?t=169590
Ich habe also ein ActiveX "Combobox23" erstellt
Eine Schleife für AddItem wäre in deinem Fall sinnvoll
Private Sub ComboBox23_Click()
Dim i As Byte
i = ComboBox23.ListIndex
ComboBox23.RemoveItem (i)
End Sub
Private Sub Worksheet_Activate()
ComboBox23.AddItem "Haus"
ComboBox23.AddItem "Scheune"
ComboBox23.AddItem "Hütte"
ComboBox23.AddItem "Serverraum"
End Sub
Eine Schleife für AddItem wäre in deinem Fall sinnvoll

Hallo speedy132!
Der Einfachheit halber hätte ich persönlich, wie bereits vorgeschlagen, auch nur eine entsprechende Meldung ausgegeben. Für Deine Idee mit der Auswahlbeschränkung, bedarf es schon etwas mehr Aufwand, um dies Umzusetzen.
Hier mal eine Möglichkeit, wie man dies per Code im Tabellenblatt Schichtplan umsetzen könnte:
Nachdem der Code in das entsprechende Tabellenblatt (Schichtplan) kopiert wurde, sind anschließend noch folgende Schritte auszuführen:
Schritt 1:
Zellbereich der Mitarbeiter im Tabellenblatt mit den Mitarbeitern definieren > Name = Mitarbeiter
Schritt 2:
Im Tabellenblatt mit dem Schichtplan am Ende eine freie Spalte auswählen, in der sich angrenzend Links und Rechts eine Leerspalte befindet z.B. Spalte X, dann erhält die Zelle X1 den Namen "TempBezug" und die Zelle X3 den Namen "TempListe". Nachdem die Namen vergeben sind, können diese Spalten ausgeblendet werden.
Schritt 3:
Im Tabellenblatt mit dem Schichtplan, in der Gültigkeitsregel die Quelle für die Mitarbeiterliste anpassen "=Indirekt(TempBezug)" und die anschließende Meldung mit "Ja" bestätigen.
Schritt 5:
Nachdem die vorigen Schritte ausgeführt wurden, muss die temporäre Mitarbeiterliste noch einmalig initialisiert werden, was durch einmaliges Drücken der Entf-Taste in einer beliebigen DropDown-Zelle geschieht...
Grüße Dieter
Der Einfachheit halber hätte ich persönlich, wie bereits vorgeschlagen, auch nur eine entsprechende Meldung ausgegeben. Für Deine Idee mit der Auswahlbeschränkung, bedarf es schon etwas mehr Aufwand, um dies Umzusetzen.
Hier mal eine Möglichkeit, wie man dies per Code im Tabellenblatt Schichtplan umsetzen könnte:
Option Explicit
Option Compare Text
'Mit dieser Function wird die temporäre Mitarbeiterliste nach jeder DropDown-Änderung automatisch angepasst
Private Sub Worksheet_Change(ByVal Target As Range)
Dim oWks As Worksheet, oCell As Range, oFound As Range
Dim sName As Variant, iOffset As Long, sFormula1 As String
On Error Resume Next
For Each oCell In Target
sFormula1 = oCell.Validation.Formula1
If sFormula1 Like "=Indirekt(TempBezug)" Then
Set oWks = GetSheet("Mitarbeiter")
If Not oWks Is Nothing Then
Application.EnableEvents = False
Range("TempListe").CurrentRegion.ClearContents
For Each sName In oWks.Range("Mitarbeiter").Value
Set oFound = ActiveSheet.UsedRange.Find(sName, LookIn:=xlValues, LookAt:=xlWhole)
If oFound Is Nothing Then
Range("TempListe").Offset(iOffset, 0).Value = sName: iOffset = iOffset + 1
End If
Next
Range("TempBezug").Value = Range("TempListe").CurrentRegion.Address
Application.EnableEvents = True
End If
Exit For
End If
Next
On Error GoTo 0
End Sub
'Diese Function gibt das Sheet-Object des übergebenen Zell-Namens zurück,
'sofern die erforderlichen Zell-Namen im Namens-Manager definiert sind.
Public Function GetSheet(ByRef sCellName) As Worksheet
Dim sName As Variant, bError As Boolean
On Error Resume Next
With ThisWorkbook
For Each sName In Array("Mitarbeiter", "TempListe", "TempBezug")
If IsError(.Names(sName)) Then
bError = True: Exit For
End If
Next
If Not bError Then
Set GetSheet = Sheets(Split(Mid(.Names(sCellName).Value, 2), "!")(0))
End If
End With
On Error GoTo 0
End Function
Schritt 1:
Zellbereich der Mitarbeiter im Tabellenblatt mit den Mitarbeitern definieren > Name = Mitarbeiter
Schritt 2:
Im Tabellenblatt mit dem Schichtplan am Ende eine freie Spalte auswählen, in der sich angrenzend Links und Rechts eine Leerspalte befindet z.B. Spalte X, dann erhält die Zelle X1 den Namen "TempBezug" und die Zelle X3 den Namen "TempListe". Nachdem die Namen vergeben sind, können diese Spalten ausgeblendet werden.
Schritt 3:
Im Tabellenblatt mit dem Schichtplan, in der Gültigkeitsregel die Quelle für die Mitarbeiterliste anpassen "=Indirekt(TempBezug)" und die anschließende Meldung mit "Ja" bestätigen.
Schritt 5:
Nachdem die vorigen Schritte ausgeführt wurden, muss die temporäre Mitarbeiterliste noch einmalig initialisiert werden, was durch einmaliges Drücken der Entf-Taste in einer beliebigen DropDown-Zelle geschieht...
Grüße Dieter