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

Dropdown in Zellen

Frage Microsoft Microsoft Office

Mitglied: Hatlho

Hatlho (Level 1) - Jetzt verbinden

19.08.2007, aktualisiert 02.09.2007, 9515 Aufrufe, 3 Kommentare

Hallo!

Ich bin gerade bei einer Aufgabenstellung in Excel am Ende meines Lateins, vielleicht kann mir ja jemand weiterhelfen.

Ich habe eine Arbeitsmappe mit 2 Tabellenblättern.
In der ersten Tabelle gibt es die Spalten „Artikelnummer“, „Produkt“, „Packungsgröße“, „Artikelart“ und „Status“.

In der zweiten Tabelle gibt es unter anderem die Spalten „Produkt“ und „Packungsgröße“.
Nun möchte ich in der Tabelle 2 in den Zeilen 2 bis 49 in Spalte B (Produktname) direkt in den Zellen je ein Dropdown od. Listenfeld in welchen die Daten aus der Tabelle 1 Spalte „Produkt“ angezeigt werden bzw. auszuwählen sind.
Es sollen jedoch nur die Datensätze angezeigt werden, bei welchen in der Spalte „Status“ ein „J“ steht.
Weiters sollte wenn in dem Dropdown ein Produkt ausgewählt wurde die dazugehörige Packungsgröße aus Tabelle 1 in die Spalte „Packungsgröße“ in Tabelle 2 eingetragen werden.

Ich hätte schon versucht ein Dropdown bzw. Listenfeld über Daten -> Gültigkeit zu erzeugen, jedoch hier scheitere ich schon daran, dass die Daten ja in einem anderem Tabellenblatt stehen.

Über Formular -> Listen bzw. Kombinationsfeld gibt es das Problem das das Feld nicht in der Zelle ist, und ich auch nicht die Spalte Packungsgröße füllen kann.

Da sich der Datenbereich in Tabelle 1 ändern kann, wenn z.B ein Artikel dazukommt soll der auch automatisch im Dropdown zur Verfügung stehen, wäre wohl einen Lösung über Makro nötig.
Jedoch hier scheitere ich auch daran wie ich ein solches Feld in einer Zelle erzeuge.

Hat jemand eine Idee wie man das am brauchbarsten lösen kann?
Freue mich über jeden Tipp, danke!!

lg
Mitglied: copkiller
19.08.2007 um 17:55 Uhr
Hallo!

Wäre das nicht einfacher in Access zu realisieren?

Gruß copkiller
Bitte warten ..
Mitglied: bastla
20.08.2007 um 11:52 Uhr
Hallo Hatlho und willkommen im Forum!

Bis Du copkiller's Frage beantwortet hast, vielleicht einige Anmerkungen:
... jedoch hier scheitere ich schon daran, dass die Daten ja in einem anderem Tabellenblatt stehen.
Wenn Du den Daten in der anderen Tabelle einen Bereichsnamen gibst (etwa "Listeninhalt"), kannst Du unter "Quelle" eines "Gültigkeit"-Dropdown einfach "=Listeninhalt" eintragen. Da die Liste allerdings dynamisch sein soll, würde ich für das Erstellen des "Listeninhaltes" VBA verwenden.

... die dazugehörige Packungsgröße aus Tabelle 1 in die Spalte „Packungsgröße“ in Tabelle 2 eingetragen werden.
Nachdem Du den Eintrag aus der Liste in die Zelle bekommen hast, sollte zum Auslesen der korrespondierenden Packungsgröße ein einfacher SVERWEIS() genügen (siehe unten) ...
Noch eine generelle Überlegung zum Thema "Dropdown": Wenn es genügt, für das Produkt nur die Artikelnummer oder die Produktbezeichnung anzuzeigen, geht das vergleichsweise einfach. Willst Du beides (oder noch mehr) im Dropdown haben, könnte die Lösung so aussehen, dass Du für die Anzeige der Liste alle gewünschten Informationen in einer Zelle je Produkt kombinierst und zumindest zwischen die Artikelnummer und die übrigen Felder ein eindeutiges Trennzeichen (etwa "_") setzt.

Die getroffene Auswahl enthält dann natürlich auch alle diese Informationen, daher könntst Du diese in einer (nicht zu schmalen) Spalte (Spalte B) unterbringen und die Anzeige des Inhaltes über das benutzerdefinierte Zahlenformat ";;;" verhindern. Da die Artikelnummer als Schlüsselbegriff sicher zu bevorzugen ist, würde ich diese dann in der nächsten Spalte (Spalte C) ausgeben: Wenn Du als Trennzeichen "_" verwendet hast, wäre die Formel zB
01.
=WENN(B2<>"";LINKS(B2;SUCHEN("_";B2)-1);"")
Noch einfacher wäre es, wenn die Artikelnummer eine fixe Länge (zB 5 Zeichen) hat. Dann würde genügen:
01.
=WENN(B2<>"";LINKS(B2;5);"")
Durch das WENN() wird die Anzeige einer Fehlermeldung verhindert, wenn in dieser Zeile noch kein Artikel ausgewählt wurde.

Alle weiteren Detailinformationen (also auch die Packungsgröße) wären dann nur noch per SVERWEIS() auf die Artikelnummer (steht in C2) zu realisieren, also etwa
01.
=WENN(B2<>"";SVERWEIS($C2;Artikeldaten;2;0);"")
Vorausgesetzt habe ich hier, dass alle (Zeilen und Spalten der) Artikeldaten in Tabelle1 einen gemeinsamen Bereichsnamen "Artikeldaten" haben. Mit dem Spaltenindex 2 würde dann (entsprechend Deinem Beispiel oben) zB die Produktbezeichnung gewählt, oder mit 3 eben die Packungsgröße ....

Zum Erstellen der Daten für den "Listeninhalt" könntest Du schließlich das folgende kleine VBA-Programm verwenden:
01.
Sub ListeErstellen() 
02.
Const LISTENNAME As String = "Listeninhalt" 
03.
Const LISTENTABELLE As String = "Tabelle3" 
04.
Const LISTENZEILE As Integer = 2 
05.
Const LISTENSPALTE As Integer = 1 
06.
 
07.
aTemp = Range("Artikeldaten").CurrentRegion 
08.
 
09.
Worksheets(LISTENTABELLE).Cells(LISTENZEILE, LISTENSPALTE).CurrentRegion.ClearContents 
10.
iZielZeile = LISTENZEILE 
11.
For i = 2 To UBound(aTemp, 1) 'Annahme: Es werden Spaltenüberschriften verwendet, Daten daher erst ab Zeile 2 des Bereiches 
12.
    If aTemp(i, UBound(aTemp, 2)) = "J" Then 
13.
        sEintrag = "" 
14.
        For j = 1 To UBound(aTemp, 2) - 1 
15.
            sEintrag = sEintrag & aTemp(i, j) & "_" 
16.
        Next 
17.
        sEintrag = Left(sEintrag, Len(sEintrag) - 1) 
18.
        Worksheets("Tabelle3").Cells(iZielZeile, LISTENSPALTE).Value = sEintrag 
19.
        iZielZeile = iZielZeile + 1 
20.
    End If 
21.
Next 
22.
Worksheets(LISTENTABELLE).Cells(LISTENZEILE, LISTENSPALTE).CurrentRegion.Name = LISTENNAME 
23.
Set aTemp = Nothing 
24.
End Sub
Die "Const"-Zeilen am Anfang legen fest, wo die Liste erstellt und wie sie benannt werden soll. Wenn die Daten, wie oben beschrieben, mit dem Bereichsnamen "Artikeldaten" versehen wurden, wird für jeden Datensatz mit einem "J" im letzten Feld ein Listeneintrag aus allen vorhergehenden Feldern erstellt. Am Ende erhält diese Liste dann noch den gewünschten Bereichsnamen ("Listeninhalt"). Unter diesem Namen kann sie dann im Dropdown eingesetzt werden.

Dieses Programm müsstest Du nach jeder Änderung der Artikeldaten ausführen, um die Liste zu aktualisieren. Starten könntest Du es zB (wie ein aufgezeichnetes Makro) über ein Schaltflächensymbol. Eine (zusätzliche) automatische Ausführung beim Öffnen der Arbeitsmappe wäre vielleicht auch keine schlechte Idee ...

Grüße
bastla

P.S.: Hast Du über Access nachgedacht?
Bitte warten ..
Mitglied: Hatlho
02.09.2007 um 15:16 Uhr
Hallo!

Erstmal Danke für eure Antworten.
Ich hab das ganze bzw. ich versuch das ganze in Access zu realisieren.
Eigent sich besser für meine Aufgabenstellung.

lg
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(4)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

VB for Applications
gelöst VBA Zellen dublizieren plus Wenn Dann Funktion (4)

Frage von grasihuepfer zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...