Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel Liste mit Datenüberprüfung anlegen und anschließend selektieren ????

Frage Microsoft Microsoft Office

Mitglied: speedy132

speedy132 (Level 1) - Jetzt verbinden

26.02.2015, aktualisiert 02.03.2015, 938 Aufrufe, 10 Kommentare, 1 Danke

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?
Mitglied: eisbein
26.02.2015, aktualisiert um 16:09 Uhr
Hallo!

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
Bitte warten ..
Mitglied: speedy132
26.02.2015 um 16:19 Uhr
Also Zellen A1 - A5 stehen die MA
A1: Max Muster
A2: Susi Strolch
A3: Benno Böhm
A4: Angela Merkel
A5: Mario Götze

Zellen A1-A5 Namen "Mitarbeiter" vergeben
Anderes Tabellenblatt ein Schichtplan:
Früh Mittag Spät
Dort über Daten-Datenüberprüfung den Namen eingetragen und die MA mithilfe der Dropdownbox ausgewählt. Soweit klappt alles.

Jetzt aber folgendes:
sobald ich ein Namen ausgwählt habe, muss dieser jetzt in den anderen Zellen aus der Dropdownbox entfernt werden, da er ja schon eingetragen wurde. Somit vermeide ich doppelte Eintragungen.
Bitte warten ..
Mitglied: eisbein
26.02.2015 um 16:35 Uhr
Es geht also darum den Inhalt der Dropdownbox (oder mehreren) dynamisch zu verändern, um den aktuell ausgewählten Namen (Mitarbeiter) aus der Dropdownbox-Liste zu entfernen?
Bitte warten ..
Mitglied: speedy132
26.02.2015 um 16:42 Uhr
ich denke so kann man das nennen
Bitte warten ..
Mitglied: eisbein
26.02.2015 um 16:56 Uhr
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
Bitte warten ..
Mitglied: speedy132
26.02.2015 um 17:08 Uhr
erstmal danke für den Hinweis, der allerdings mich nicht weiter bringt.
Es muss doch auch in excel möglich sein das hinzubekommen. evtl mit indirekt oder so....
Bitte warten ..
Mitglied: eisbein
26.02.2015, aktualisiert um 17:22 Uhr
Ich habe doch etwas gefunden.

Du musst allerdings das ActiveX-Steuerelent "Combobox" oder "Listenfeld" verwenden.
Diesem kann man dann mittels .addItem Werte zuweisen und mit .removeItem wieder entfernen.

Gruß
Eisbein
Bitte warten ..
Mitglied: eisbein
26.02.2015, aktualisiert um 17:41 Uhr
Ich habe also ein ActiveX "Combobox23" erstellt

01.
 
02.
Private Sub ComboBox23_Click() 
03.
    Dim i As Byte 
04.
    i = ComboBox23.ListIndex 
05.
    ComboBox23.RemoveItem (i) 
06.
End Sub 
07.
 
08.
Private Sub Worksheet_Activate() 
09.
    ComboBox23.AddItem "Haus" 
10.
    ComboBox23.AddItem "Scheune" 
11.
    ComboBox23.AddItem "Hütte" 
12.
    ComboBox23.AddItem "Serverraum" 
13.
End Sub
Eine Schleife für AddItem wäre in deinem Fall sinnvoll
Bitte warten ..
Mitglied: Eintagsfliege
LÖSUNG 01.03.2015, aktualisiert 02.03.2015
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:
01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
'Mit dieser Function wird die temporäre Mitarbeiterliste nach jeder DropDown-Änderung automatisch angepasst 
05.
Private Sub Worksheet_Change(ByVal Target As Range) 
06.
    Dim oWks As Worksheet, oCell As Range, oFound As Range 
07.
    Dim sName As Variant, iOffset As Long, sFormula1 As String 
08.
     
09.
    On Error Resume Next 
10.
    For Each oCell In Target 
11.
        sFormula1 = oCell.Validation.Formula1 
12.
         
13.
        If sFormula1 Like "=Indirekt(TempBezug)" Then 
14.
            Set oWks = GetSheet("Mitarbeiter") 
15.
             
16.
            If Not oWks Is Nothing Then 
17.
                Application.EnableEvents = False 
18.
                Range("TempListe").CurrentRegion.ClearContents 
19.
                For Each sName In oWks.Range("Mitarbeiter").Value 
20.
                    Set oFound = ActiveSheet.UsedRange.Find(sName, LookIn:=xlValues, LookAt:=xlWhole) 
21.
                     
22.
                    If oFound Is Nothing Then 
23.
                        Range("TempListe").Offset(iOffset, 0).Value = sName:  iOffset = iOffset + 1 
24.
                    End If 
25.
                Next 
26.
                Range("TempBezug").Value = Range("TempListe").CurrentRegion.Address 
27.
                Application.EnableEvents = True 
28.
            End If 
29.
            Exit For 
30.
        End If 
31.
    Next 
32.
    On Error GoTo 0 
33.
End Sub 
34.
 
35.
'Diese Function gibt das Sheet-Object des übergebenen Zell-Namens zurück, 
36.
'sofern die erforderlichen Zell-Namen im Namens-Manager definiert sind. 
37.
Public Function GetSheet(ByRef sCellName) As Worksheet 
38.
    Dim sName As Variant, bError As Boolean 
39.
     
40.
    On Error Resume Next 
41.
    With ThisWorkbook 
42.
        For Each sName In Array("Mitarbeiter", "TempListe", "TempBezug") 
43.
            If IsError(.Names(sName)) Then 
44.
                bError = True:  Exit For 
45.
            End If 
46.
        Next 
47.
         
48.
        If Not bError Then 
49.
            Set GetSheet = Sheets(Split(Mid(.Names(sCellName).Value, 2), "!")(0)) 
50.
        End If 
51.
    End With 
52.
    On Error GoTo 0 
53.
End Function
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
Bitte warten ..
Mitglied: speedy132
02.03.2015 um 14:21 Uhr
Herzlichen Dank Dieter,

genauso so etwas habe ich gesucht

Habe das jetzt mit verschiedenen Abteilungen durchgespielt und es funktioniert alles einwandfrei.

Super....
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Netzwerk
gelöst Excel Liste soll Partnerfirma zugänglich gemacht werden (3)

Frage von Knorkator zum Thema Windows Netzwerk ...

VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...