Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ComboBox nach Auswahl ausführen

ComboBox nach Auswahl ausführen
08.05.2019 15:28:18
Martin
Hallo zusammen,
ich habe eine "ComboBox" in einem Userform mittels ".ControlSource" mit einer Zelle verknüpft.
Weiß jemand, ob ich die Eigenschaften der "ComboBox" so einstellen kann, dass nach der Auswahl eines anderen Eintrages dieser DIREKT übergeben wird?
Bei mir bleibt dann der neue Eintrag blau markiert und erst wenn ich eine andere "ComboBox" oder "TextBox" auswähle wird der neue Eintrag übertragen.
Die Eigenschaft ".Style" habe ich bereits aus "2- fmStyleDropDownList" eingestellt.
Viele Grüße
Martin
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox nach Auswahl ausführen
08.05.2019 15:37:56
Werner
Hallo Martin,
dafür gibt es das Change-Event der Combobox
Private Sub ComboBox1_Change()
Range("A1") = Me.ComboBox1
End Sub
Gruß Werner
AW: ComboBox nach Auswahl ausführen
08.05.2019 15:45:57
Martin
Ich habe leider sehr viele ComboBoxen und würde ungern für jede ComboBox ein ChangeEvent programmieren.
Über die Eigenschaftsfelder im VBA-Editor kann man es nicht festlegen, oder?
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

ComboBox in Excel UserForms automatisch aktualisieren


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Wähle Dein UserForm aus: Klicke im Projekt-Explorer auf das UserForm, das die ComboBox enthält.

  3. Füge einen Code für das Change-Event hinzu:

    • Klicke auf die ComboBox, für die Du das Event festlegen möchtest.
    • Im Eigenschaftenfenster solltest Du die Eventliste sehen. Wähle das Change-Event aus.
  4. Füge den folgenden Code ein:

    Private Sub ComboBox1_Change()
       Range("A1") = Me.ComboBox1.Value
    End Sub
  5. Testen: Schließe den VBA-Editor und teste das UserForm. Bei der Auswahl eines Wertes in der ComboBox sollte der Wert sofort in Zelle A1 übertragen werden.


Häufige Fehler und Lösungen

  • Fehler: Der Wert wird nicht übertragen: Stelle sicher, dass das Change-Event korrekt mit der ComboBox verknüpft ist. Überprüfe auch, ob Du den richtigen Namen für die ComboBox im Code verwendest.

  • Fehler: Mehrere ComboBoxen: Wenn Du viele ComboBoxen hast, kannst Du den gleichen Code für alle verwenden, indem Du die ComboBoxen in einer Schleife bearbeitest.

    Private Sub ComboBox_Change()
       Dim ctrl As Control
       For Each ctrl In Me.Controls
           If TypeName(ctrl) = "ComboBox" Then
               Range("A" & ctrl.TabIndex + 1) = ctrl.Value
           End If
       Next ctrl
    End Sub

Alternative Methoden

  • Verwenden der Worksheet-Change-Ereignisse: Anstatt das Change-Event in jedem UserForm zu verwenden, kannst Du auch das Change-Ereignis des Arbeitsblatts nutzen, um die Änderungen zu verfolgen.

  • Direkte Verknüpfung mit einer Zelle: Du kannst die ComboBox auch so einstellen, dass sie direkt mit einer Zelle verknüpft ist, indem Du die ControlSource-Eigenschaft nutzt. Beachte, dass Du dann manuell die Zelle aktualisieren musst.


Praktische Beispiele

Angenommen, Du hast ein UserForm mit drei ComboBoxen (ComboBox1, ComboBox2 und ComboBox3). Du möchtest, dass die Auswahl in diesen ComboBoxen direkt in die Zellen A1, A2 und A3 geschrieben wird. Hier ist ein Beispielcode:

Private Sub ComboBox1_Change()
    Range("A1") = Me.ComboBox1.Value
End Sub

Private Sub ComboBox2_Change()
    Range("A2") = Me.ComboBox2.Value
End Sub

Private Sub ComboBox3_Change()
    Range("A3") = Me.ComboBox3.Value
End Sub

Wenn Du eine bessere Lösung suchst, um alle ComboBoxen gleichzeitig zu aktualisieren, nutze die Schleife aus dem vorherigen Abschnitt.


Tipps für Profis

  • Verwende die .List-Eigenschaft: Fülle Deine ComboBoxen dynamisch mit Werten aus einem Bereich in Excel, um die Benutzerfreundlichkeit zu erhöhen.

  • Entwickle ein zentrales Change-Event: Anstatt für jede ComboBox ein eigenes Change-Event zu schreiben, erstelle eine zentrale Methode, die für alle ComboBoxen gilt, und rufe diese Methode bei jeder Änderung auf.


FAQ: Häufige Fragen

1. Kann ich das Change-Event für eine ComboBox global verwenden?
Ja, Du kannst ein gemeinsames Change-Event für alle ComboBoxen erstellen, indem Du eine Schleife verwendest, um alle ComboBoxen im UserForm zu durchlaufen.

2. Was mache ich, wenn die ComboBox nicht funktioniert?
Überprüfe die Eigenschaften der ComboBox im VBA-Editor und stelle sicher, dass sie korrekt mit der entsprechenden Zelle verknüpft ist. Achte auch auf mögliche Schreibfehler im Code.

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