Excel - Dropdown-Liste für bestimmte Zellen erstellen

Problem

Ich wollte eine Dropdown-Liste aus Daten in Sheet2 erstellen. Ich habe die folgenden Codes ausprobiert, aber das Ergebnis scheint falsch zu sein. Anstelle der in der Dropdown-Liste aufgelisteten Daten in Sheet2 enthielt die Dropdown-Liste die Daten aus Sheet1 (das ist mein Zielblatt).

Außerdem möchte ich die Dropdown-Liste für bestimmte Zellen haben, in denen ich zuvor Informationen zu den Zellen habe. Das heißt, die Dropdown-Liste sollte sich in Spalte F von Sheet1 befinden, in der sich Informationen zu Spalte E von Sheet1 befinden, und bis zum Ende von wiederholen Die Liste.

Anbei die Datei, an der ich gerade arbeite.

Lösung

Sie erstellen eine Validierungsliste aus EINEM ANDEREN ARBEITSBLATT und geben dieser Validierungsliste einen Bereichsnamen (in Blatt 2).

und benutze das als Formel

Ich habe versucht, Ihr Makro zu ändern, ohne zu stören, außer ein oder zwei Zeilen zu ändern

Ich habe den Bereichsnamen als "Bereichsname" angegeben. Sie können es im Makro ändern

Bei Bedarf etwas mehr optimieren.

 Sub Dropdown () Dim x So lang, y So lang Dim objCell As Range Dim objDataRangeStart As Range Dim objDataRangeEnd As Range Dim rangename As String '>> Setze den Bereich für gültigen Datensatz wsSourceList = Sheets ("Sheet2") Setze wsDestList = Sheets ("Sheet1") Set objDataRangeStart = wsSourceList.Cells (1, 2) 'Startbereich für Dropdown-Listeneinträge Set objDataRangeEnd = wsSourceList.Cells (6, 2)' Endbereich für Dropdown-Listeneinträge MsgBox objDataRangeStart MsgBox objDataRange = E ============ Mit Arbeitsblättern ("Sheet2") Bereich (objDataRangeStart, objdatarangaeend) .Name = "rangename" End With '================ ====== '>> Validierung für erforderliche Zelle festlegen' Set objCell = wsDestList.Cells (8, 4) 'Position der Dropdown-Liste' MsgBox objCell x = 4 y = 6 Do Set objCell = wsDestList.Cells (x, y) 'Position der Dropdown-Liste mit objCell.Validation .Delete' .Add Typ: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & ":" & objDataRangeEnd. Adresse '= ========================================= .Add Type: = xlValidateList, AlertStyle : = xlValidAlertStop, Operator: = _ xlBetween, Formula1: = "= rangename" '================================= ================================ .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = "Warning" .ErrorMessage = " Bitte wählen Sie einen Wert aus der Liste in der ausgewählten Zelle. " .ShowError = True End With x = x + 1 'y = y + 1 Schleife bis x = 51 End Sub 

Danke an venkat1926 für diesen Tipp.

Vorherige Artikel Nächster Artikel

Top-Tipps