wie programmiert man eine droplist in vba , spreadsheet, excel
Das geht wie folgt
Einfügung der Liste auf Blatt „Tabelle1“ in den Zellen B1 bis B2
Variante 1 mit Liste im gleichen Tabellenblatt in Zellen H2 bis H6
Sub Dropdown()
Dim MyRange As Range
Set MyRange = Sheets("Tabelle1").Range("B1:B2")
With MyRange.Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, \_
Operator:=xlBetween, Formula1:="=$H$2:blush:H$6"
End With
End Sub
oder
Variante 2 mit Liste auf anderem Blatt. Dazu muss der Bereich mit "Einfügen " „Namen“ " Definieren einen eineindeutigen Namen bekommen, hier „MyList“
Sub Dropdown()
Dim MyRange As Range
Set MyRange = Sheets("Tabelle1").Range("B1:B2")
With MyRange.Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, \_
Operator:=xlBetween, Formula1:="=MyList"
End With
End Sub
Übrigens: alles Grundwissen und Variante 1 lässt sich auch mit dem Makrorekorder aufzeichnen!
wie programmiert man eine droplist in vba , spreadsheet, excel
Liebe® unbekannte®,
z.B.: Monatsnamen von A1 bis A12 eingeben
rechte Maustaste auf Objekt: Steuerelement formatieren
Register: Steuerung
Eingabebereich: $A$1:blush:A$12
Zellverknüpfung: $B$1
Dropdownzeilen: 12
Die Auswahl übergibt in Zelle B1 das x-te Element als Wert. Somit kann mit diesem Wert in anderen Formeln gearbeitet werden.
Das war’s
lg Erwin
Hi,
leider habe ich sowas nur in Access gemacht, und das ist, soweit ich mich erinnere, wesentlich leichter als in Excel.
Sorry.
Gruß
Karsten
wie programmiert man eine droplist in vba , spreadsheet, excel
Erst einmal vielen Dank fuer die Hilfe !!
Hat gut funktioniert. Ich habe nun aber die Frage,
wie kann man die ganze Dropdown-Liste sehen ? (Ich
hatte eine andere Weise probiert, die die Funktion/
Parameter „dropdownlines“ hatte)
Die Liste sieht man, indem man die Bildlaufleiste an der Zelle bedient.
Eine andere Möglichkeit ist nicht bekannt.
Es werden immer nur 8 Werte angezeigt, dann muss man blättern.
dropdownlines ist für Listboxes oder Comboboxes in den Userforms gedacht, nicht für Dropdownlixten im Blatt.
Erst einmal vielen Dank fuer die Hilfe !!
Hat gut funktioniert. Ich habe nun aber die Frage,
wie kann man die ganze Dropdown-Liste sehen ? (Ich
hatte eine andere Weise probiert, die die Funktion/
Parameter „dropdownlines“ hatte).
Sorry für meine späte Antwort.
Leider habe ich derzeit keinen Zugriff auf eine Microsoft Office Version mehr. Daher kann ich keine Unterstützung mehr bieten.
wie programmiert man eine droplist in vba , spreadsheet, excel
Die programmiert man nicht, sondern man verwendet den Befehl: „Daten / Gültigkeit“
In dem Fenster das dann kommt kann man unter dem Register „Einstellungen“ im Feld „Zulassen“ den Eintrag „Liste“ auswählen.
Daneben kann man dann noch auswählen, dass das ein Dropdownfeld sein soll: „Zellendropdown“.
Weiter unten unter „Quelle“ gibt man die erlaubten Werte ein, entweder
- direkt als Liste mit Semikolons getrennt oder
- einen Bereich in der Tabelle wählen, der die Liste enthält (geht nur in derselben Tabelle) oder
- (wenn die Liste in einer anderen Tabelle steht) muss für die Liste ein „Name“ definiert werden und dieser dann als Verweis auf die Liste dort angegeben werden.
Das Thema „Namen“ für Felder und Feldbereiche findet sich unter dem Befehl „Einfügen / Namen“
Viele Grüße
Martin Altebockwinkel
wie programmiert man eine droplist in vba , spreadsheet, excel
Liebe/-r Experte/-in,
An sich alles gesagt ausser, dass Du auch eine ComboBox aus dem Register „Entwicklertools“ wählen kannst, dann die Eigenschaft „ListFillRange“ mit den Namen der Auswahlliste versiehst. Danach ein Click-Ereignis erstellen und den Combobox-Wert auslesen. Damit kannst Du anschliessend machen, was Du willst.
Beispiel:
- Combobox mit dem Namen cboListe erstellen
- Datenliste erfassen und einen Namen zuweisen
- Den def. Namen in Eigenschaft „ListFillRange“ eintragen
Nachdem Du dann die Liste aufklappst, wird mit dem Click-Ereignis der Wert auf eine Zelle übertragen oder was auch immer.
BspCode:
Private Sub cboListe_Click()
MsgBox „Es wurde " & cboListe.Value & " ausgewählt“
Range("$A$2").Value = cboListe.Value
End Sub
Hoffe, es dient und gibt einen zusätzlichen Lösungsansatz.
Liebe Grüsse, Henri.