Clever-Excel-Forum

Normale Version: Dropdown in Userform
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe vor langer Zeit ein Tank-Protokoll von Glausius erhalten und für mich angepasst/erweitert.

Nun ist mir eine weitere Erweiterung eingefallen:

In einer Userform zur Eingabe habe ich ein Text-Feld "Wo?" bei der die Tankstelle eingetragen wird.
Ich hätte nun gerne die Auswahl über ein Dropdown aus der Liste der schon früher besuchten Tankstellen und zusätzlich aber auch die Möglichkeit eine bisher noch nicht besuchte Tankstelle einzutragen.

Mir fällt dazu nix ein, geht das überhaupt?
Hallo,

Du gehst auf Daten - Datenüberprüfung - Einstellungen
Bei "Zulassen" wählst du "Liste"
Bei "Quelle" Schreibst du die gewünschten Tankstellennamen mit   ;  Trennung
oder wählst du den Vorher vorbereiteten Bereich mit Tankstellennamen

LG
Polat
Moin Ralf,

nimm einfach das Häkchen bei "Fehlermeldung anzeigen, wenn..." raus.
(19.08.2019, 09:34)Rabe schrieb: [ -> ]In einer Userform zur Eingabe habe ich ein Text-Feld "Wo?" bei der die Tankstelle eingetragen wird.
Ich hätte nun gerne die Auswahl über ein Dropdown aus der Liste der schon früher besuchten Tankstellen und zusätzlich aber auch die Möglichkeit eine bisher noch nicht besuchte Tankstelle einzutragen.

Hallo Ralf, :19:

habe dir im Anhang mal das Prinzip mit einer UserForm aufgezeigt: :21:
[attachment=26055]

Du kannst in der Liste auswählen. Wählst du einen Eintrag (z. B. A_4) aus, der schon im Tabellenblatt vorhanden ist und wählst "Eintragen...", passiert nichts. Trägst du aber z. B. A_22 ein und klickst auf "Eintragen...", wird der jeweilige Wert in der ersten freien Zelle in Spalte A eingetragen. :21:
Hallo ihr Zwei,

danke.
Das ist ja nun die Dropdown in der Datenbank-Liste, das betrifft nicht das Textfeld in der Userform. Geht das auch?

Die Gültigkeitsprüfung bezieht sich auf eine Pivot-Tabelle, die aus der Datenbankliste entsteht, diese ist jedoch keine intelligente Tabelle/Liste.
Wie bekomme ich die sich bei jeder Eintragung erweiterte Liste in den Pivot-Datenbereich.

Hallo Ralf,

danke, das werde ich mal testen.

Gruß Ralf
@Case

oder:
Code:
Private Sub UserForm_Initialize()
    ComboBox1.List = Tabelle1.Cells(1).CurrentRegion.Columns(1).Value
End Sub

Code:
Private Sub CommandButton1_Click()
    With ComboBox1
        Tabelle1.Cells(Rows.Count, 8).End(xlUp).Rows.Offset(1).Value = .Value

        If .ListIndex = -1 And .Value <> "" Then
            Tabelle1.Cells(1).Offset(.ListCount) = .Value
            .List = Tabelle1.Cells(1).CurrentRegion.Columns(1).Value
        End If
    End With
End Sub
Hallo,

ich habe nun beide Codes in einer Datei (ein Teil ausgeblendet).

Der Auswahlbereich für die Dropbox ist in Spalte AA (27) ab Zeile 6 (Pivot aus Spalte R = 18), die einzutragende Spalte ist Spalte R (18).

Das habe ich bei dem Code noch nicht hinbekommen.
[attachment=26056]

Die Eintragungen sollen in Spalte R auch mehrfach möglich sein.
Hallo Ralf, :19:

bezogen auf dein Beispiel so: :21:
[attachment=26058]

Ob du "CurrentRegion", oder "Tabelle1.Rows.Count).End(xlUp).Row" nutzt ist absolut nebensächlich. Dodgy

Ich habe noch ein Refresh für die Pivot eingebaut, sonst wird der neueste Eintrag ja nicht angezeigt.

Auch markiere ich den Text der ComboBox beim laden komplett, falls man gleich etwas schreiben möchte.
Code:
Private Sub UserForm_Initialize()
    ComboBox1.List = Tabelle1.PivotTables(1).DataBodyRange.Columns(1).Value
End Sub

Code:
Private Sub CommandButton1_Click()
    With ComboBox1
        If .ListIndex = -1 And .Value <> "" Then
            With Tabelle1.ListObjects(1).DataBodyRange
                .Cells(1).Offset(.Rows.Count) = ComboBox1.Value
            End With
            With Tabelle1.PivotTables(1)
               .RefreshTable
                With .PivotFields(1)
                    .AutoSort 1, .Name
                End With
             End With
            .List = Tabelle1.PivotTables(1).DataBodyRange.Columns(1).Value
        End If
    End With
End Sub
Hallo Freunde,

ich habe nun die beiden Lösungen von Ralf und snb kombiniert und es funktioniert wie gewünscht!