Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ComboBox Click() mark. Wert anzeigen

ComboBox Click() mark. Wert anzeigen
06.07.2016 15:26:07
Lukas
Hallo Leute,
ich habe eine ComboBox mit Werten befüllt.
Wie kann ich es erreichen, dass der vom Anwender angeklickte Wert in der Combobox stehen bleibt und nach Klick auf den OK-Button im UserForm in die Zelle B26 übertragen wird?
Mein Coding:
Sub ComboBoxLoadingBez()
'Befüllen der Combobox mit Inhalt aus Spalte O (=Bezeichnung)
Dim bez As Byte
For bez = 2 To Sheets(2).Cells(Rows.Count, 15).End(xlUp).Row
UserForm1.ComboBoxPos1Bez.AddItem Sheets(2).Cells(bez, 15).Value
Next bez
End Sub
Private Sub ComboBoxPos1Bez_DropButtonClick()
ComboBoxPos1Bez.Clear
Call ComboBoxLoadingBez
End Sub

Private Sub ComboBoxPos1Bez_Click()
Dim strBez As String
strBez = UserForm1.ComboBoxPos1Bez.ListIndex = UserForm1.ComboBoxPos1Bez.ListCount - 1 '?
End Sub

Private Sub OKButton1_Click()
'übertrage ausgewählte Bezeichnung in Sheet(1) Zelle B26
Sheets(1).Range("B26").Value = strBez '?
End Sub
Leider komme ich in den letzten beiden Subs nicht weiter. :((
Gruß
Lukas

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox Click() mark. Wert anzeigen
06.07.2016 15:58:40
Werner
Hallo Lukas,
Private Sub OKButton1_Click()
'übertrage ausgewählte Bezeichnung in Sheet(1) Zelle B26
Sheets(1).Range("B26").Value = ComboBoxPos1Bez.Value
End Sub
Gruß Werner

AW: ComboBox Click() mark. Wert anzeigen
06.07.2016 19:49:24
Lukas
Danke Werner.
Mit .Value funktioniert es.
Aber wie mache ich es, dass der angeklickte Eintrag in der ComboBox stehen bleibt, sprich angezeigt wird und sich die ComboBox dann schließt?
Gruß Lukas

Anzeige
AW: ComboBox Click() mark. Wert anzeigen
07.07.2016 06:24:54
Werner
Hallo Lukas,
also ehrlich gesagt ist mir nicht so ganz klar, was du eigentliche erreichen möchtest, vor allem wenn ich mir deine gezeigten Codes so anschaue. Unter anderem hast du da einen drin "Combobox_DropButtonClick" da werden die Daten bei jedem Klick auf das DropDown-Feld der Combobox wieder neu eingelesen. Ist das überhaupt erforderlich?
Und was du damit
Private Sub ComboBoxPos1Bez_Click()
Dim strBez As String
strBez = UserForm1.ComboBoxPos1Bez.ListIndex = UserForm1.ComboBoxPos1Bez.ListCount - 1 '?
End Sub

erreichen willst ist mir völlig unklar.
Ich stell dir jetzt mal was ein. Schmeiß mal deine ganzen Codes raus und kopier diese beiden bei dir rein.
Es wird die Combobox beim Starten der Userform mit Daten gefüllt, bei Klick auf OK wird der ausgewählte Eintrag in die Tabelle geschrieben. Das Pulldown der Combobox schließt sich, der ausgewählte Eintrag wird angezeigt.
Private Sub OKButton1_Click()
Sheets(1).Range("B26").Value = ComboBox1.Value
End Sub
Private Sub UserForm_Initialize()
Dim bez As Long
For bez = 2 To Sheets(2).Cells(Rows.Count, 15).End(xlUp).Row
UserForm1.ComboBoxPos1Bez.AddItem Sheets(2).Cells(bez, 15).Value
Next bez
End Sub
Gruß Werner

Anzeige
AW: ComboBox Click() mark. Wert anzeigen
07.07.2016 06:32:46
Werner
Hallo Lukas,
ich habe noch einen kleinen Fehler drin, hier
Private Sub OKButton1_Click()
Sheets(1).Range("B26").Value = ComboBoxPos1Bez.Value
End Sub
hatte ich den Namen deiner Combobox nicht drin.
Gruß Werner

AW: ComboBox Click() mark. Wert anzeigen
07.07.2016 15:29:22
Lukas
Hallo Werner,
Danke für deine Tipps! Nun funktioniert es fehlerfrei.
Folg. Fehler hatte mein Coding:
1. Meine Schleife war nicht im "Initialize()" Sub.
2. Die Variablen (strPos, strBez, strUBez) waren nicht public deklariert.
Deshalb konnten keine Values nach Klick auf "OK" übertragen werden.
3. Statt dem Click() Event habe ich das Change() Event bei der Combobox verwendet. Ich habe den Unterschied in der MSDN Hilfe nachgelesen. Nun ist mir das klar.
4. ListIndex, ListCount und Value habe ich mir ebenfalls in einer Beispieldatei hier im Forum angesehen - auch kapiert...wieder was gelernt! ;-)
Gruß
Lukas

Anzeige
AW: Gerne u. Danke für die Rückmeldung. owT
07.07.2016 19:41:22
Werner
;
Anzeige
Anzeige

Infobox / Tutorial

ComboBox Click Event in Excel VBA: Wert Übertragen und Anzeigen


Schritt-für-Schritt-Anleitung

Um das ComboBox Click Event in Excel VBA zu nutzen und den angeklickten Wert in eine Zelle zu übertragen, folge dieser Anleitung:

  1. UserForm Erstellen: Erstelle eine UserForm und füge eine ComboBox (ComboBoxPos1Bez) sowie einen OK-Button (OKButton1) hinzu.

  2. ComboBox Befüllen: Verwende den folgenden Code im UserForm_Initialize() Event, um die ComboBox mit Werten zu füllen:

    Private Sub UserForm_Initialize()
        Dim bez As Long
        For bez = 2 To Sheets(2).Cells(Rows.Count, 15).End(xlUp).Row
            UserForm1.ComboBoxPos1Bez.AddItem Sheets(2).Cells(bez, 15).Value
        Next bez
    End Sub
  3. Wert Übertragen: Füge im OKButton1_Click() Event den Code hinzu, um den ausgewählten Wert in Zelle B26 zu übertragen:

    Private Sub OKButton1_Click()
        Sheets(1).Range("B26").Value = ComboBoxPos1Bez.Value
        Unload UserForm1 ' Schließt die UserForm
    End Sub
  4. ComboBox Ereignis: Stelle sicher, dass die ComboBox den Wert nach dem Click anzeigt und sich schließt. Der obenstehende Code sorgt dafür, dass der angeklickte Wert bleibt.


Häufige Fehler und Lösungen

  • Wert wird nicht angezeigt: Stelle sicher, dass der Code im UserForm_Initialize() Event korrekt ist und die ComboBox richtig gefüllt wird. Achte darauf, dass du ComboBoxPos1Bez.Value im OKButton1_Click() verwendest, um den Wert zu übertragen.

  • ComboBox wird bei jedem Klick neu befüllt: Wenn du das ComboBox_DropButtonClick Event verwendest, wird die ComboBox bei jedem Klick erneut gefüllt. Nutze stattdessen nur das UserForm_Initialize() Event.

  • Variablen nicht deklariert: Stelle sicher, dass alle verwendeten Variablen (wie strBez) als Public deklariert sind, wenn sie in mehreren Subs benötigt werden.


Alternative Methoden

Eine andere Möglichkeit, Werte in eine ComboBox einzufügen, ist die Verwendung von Arrays oder Datenbanken. Du kannst die Werte auch dynamisch aus einer Quelle wie einer Datenbank abrufen, was die Flexibilität erhöht.

Beispiel:

Dim myArray() As Variant
myArray = Array("Wert1", "Wert2", "Wert3")

For Each item In myArray
    UserForm1.ComboBoxPos1Bez.AddItem item
Next item

Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie man eine ComboBox in Excel VBA implementiert:

  1. Erstelle eine UserForm mit einer ComboBox (ComboBoxPos1Bez) und einem Button (OKButton1).
  2. Fülle die ComboBox im UserForm_Initialize() Event.
  3. Übertrage den Wert im OKButton1_Click() Event.

Tipps für Profis

  • Verwendung von Change-Event: Das Change-Event der ComboBox kann verwendet werden, um Aktionen auszulösen, wenn der Benutzer einen neuen Wert auswählt. Dies kann hilfreich sein, um dynamische Änderungen in der Anwendung vorzunehmen.

  • Fehlerbehandlung einfügen: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler elegant zu handhaben. Beispiel:

    On Error GoTo ErrorHandler
    ' Dein Code hier
    Exit Sub
    ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der angeklickte Wert in der ComboBox bleibt?
Verwende ComboBoxPos1Bez.Value im OKButton1_Click() Event, um den Wert zu speichern und die UserForm zu schließen.

2. Was ist der Unterschied zwischen Click und Change Events in einer ComboBox?
Das Click-Event wird ausgelöst, wenn die ComboBox angeklickt wird, während das Change-Event ausgelöst wird, wenn der Benutzer einen neuen Wert auswählt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige