Dropdown in Userform
#1
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?
Top
#2
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
Top
#3
Moin Ralf,

nimm einfach das Häkchen bei "Fehlermeldung anzeigen, wenn..." raus.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#4
(19.08.2019, 10: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:
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • Rabe
Top
#5
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
Top
#6
@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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Rabe
Top
#7
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.

.xlsb   Fahrtenbuch - UF_UserForm_ComboBox_Auswaehlen_UND_Eintragen.xlsb (Größe: 23,35 KB / Downloads: 8)

Die Eintragungen sollen in Spalte R auch mehrfach möglich sein.
Top
#8
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.
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • Rabe
Top
#9
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Rabe
Top
#10
Hallo Freunde,

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


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste