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

ComboBox Wert in Zelle übergeben

Forumthread: ComboBox Wert in Zelle übergeben

ComboBox Wert in Zelle übergeben
02.04.2015 16:39:59
puma_888

Hallo zusammen,
ich habe eine Combobox1 (aktiveX) in einem Tabellenblatt integriert mit der ich von einem anderen Tabellenblatt Werte auswählen und in einer Zelle wiedergeben möchte. Dies funktioniert auch soweit ganz gut, ich hab nur ein Problem. In der Zelle, in der der ausgewählte Wert der Combobox widergeben werden soll, wird aber immer der Wert der zuvor ausgewählt wurde angezeigt, also nie der aktuelle Wert. Woran kann das liegen oder wie müsste ich meinen Code erweitern, danke :).

Private Sub Worksheet_Activate()
With Worksheets("Tabelle1")
ComboBox1.List = .Range(.Cells(5, 3), .Cells(.Rows.Count, 11).End(xlUp)).Value
End With
Tabelle2.Cells(6, 2).Value = ComboBox1.Value
End Sub

Gruß
Markus

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
benutze das Change-Ereignis
02.04.2015 17:29:54
Matthias L
Hallo
Private Sub ComboBox1_Change()
Tabelle2.Cells(6, 2).Value = ComboBox1.Value
End Sub
Gruß Matthias

AW: benutze das Change-Ereignis
08.04.2015 08:37:12
puma_888
vielen Dank, es funktioniert :).
Gruß
Markus

AW: ComboBox Wert in Zelle übergeben
02.04.2015 17:31:15
Markus Schmid
Hallo Markus
Wenn ich das richtig interpretiere, was du beabsichtigst, so müsste das Übertragen des ausgewählten Werts in der Ereignisprozedur ComboBox1_Change() erfolgen.
Beim Aktivieren des Blatts sollte in der Tabelle der alte Wert erhalten bleiben, aber die Listenwerte neu festgelegt werden. Da sich die Listenwerte zwischenzeitlich geändert haben können, sollte in der ComboBox kein Wert angezeigt werden (ausgewählt sein).
Der Code sieht dann wie folgt aus:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex >= 0 Then
' ausgewählter Wert übertragen
Tabelle2.Cells(6, 2).Value = ComboBox1.Value
End If
End Sub
Private Sub Worksheet_Activate()
With Worksheets("Tabelle1")
ComboBox1.List = .Range(.Cells(5, 3), .Cells(.Rows.Count, 11).End(xlUp)).Value
End With
ComboBox1.ListIndex = -1    ' kein Wert ausgewählt
End Sub
Gruss
Markus

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ComboBox-Wert in Zelle übergeben


Schritt-für-Schritt-Anleitung

Um den Wert einer Excel ComboBox in eine Zelle zu übergeben, kannst du die folgenden Schritte befolgen. Diese Anleitung geht davon aus, dass du mit ActiveX-Controls arbeitest.

  1. Füge eine ComboBox hinzu: Öffne dein Excel-Arbeitsblatt und füge eine ActiveX-ComboBox (ComboBox1) hinzu.

  2. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge den Code ein: Navigiere zu dem Arbeitsblatt, das die ComboBox enthält, und füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_Activate()
       With Worksheets("Tabelle1")
           ComboBox1.List = .Range(.Cells(5, 3), .Cells(.Rows.Count, 11).End(xlUp)).Value
       End With
       ComboBox1.ListIndex = -1 ' kein Wert ausgewählt
    End Sub
    
    Private Sub ComboBox1_Change()
       If ComboBox1.ListIndex >= 0 Then
           ' ausgewählter Wert übertragen
           Tabelle2.Cells(6, 2).Value = ComboBox1.Value
       End If
    End Sub
  4. Aktiviere das Arbeitsblatt: Stelle sicher, dass du das Arbeitsblatt aktivierst, um die ComboBox zu initialisieren.

  5. Teste die Funktionalität: Wähle einen Wert aus der ComboBox aus und überprüfe, ob der Wert korrekt in der vorgesehenen Zelle angezeigt wird.


Häufige Fehler und Lösungen

  • Problem: Der Wert in der Zelle wird nicht aktualisiert.

    • Lösung: Stelle sicher, dass der Code im ComboBox1_Change()-Ereignis korrekt implementiert ist. Der Code sollte den neuen Wert nur übertragen, wenn ListIndex >= 0 ist.
  • Problem: Die ComboBox zeigt immer den vorherigen Wert an.

    • Lösung: Setze ComboBox1.ListIndex = -1 im Worksheet_Activate()-Ereignis, um sicherzustellen, dass kein Wert ausgewählt ist, wenn das Arbeitsblatt aktiviert wird.

Alternative Methoden

Eine alternative Methode zur Verwendung von ComboBoxen könnte die Verwendung von Datenvalidierung in einer normalen Excel-Liste sein. Hierbei kannst du eine Dropdown-Liste erstellen, die ebenfalls Werte in Zellen überträgt, jedoch ohne VBA-Code.

  1. Wähle die Zelle aus, in der du die Dropdown-Liste erstellen möchtest.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle Liste aus und gib den Bereich an, der die möglichen Werte enthält.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die ComboBox verwenden kannst:

  • Angenommen, du hast eine Liste von Produkten in Tabelle1, beginnend bei Zelle C5 bis C10.
  • Wenn du einen Produktnamen aus der ComboBox auswählst, wird der Name in Tabelle2, Zelle B6 angezeigt.

Der Code bleibt gleich, wie oben beschrieben.


Tipps für Profis

  • Verwende ComboBox1.ListIndex effizient, um sicherzustellen, dass du nur dann den Wert überträgst, wenn der Benutzer tatsächlich einen neuen Wert ausgewählt hat.
  • Experimentiere mit verschiedenen Event-Prozeduren, um die Benutzerinteraktion zu verbessern. Zum Beispiel könntest du bei ComboBox1_DropButtonClick() weitere Anpassungen vornehmen.

FAQ: Häufige Fragen

1. Wie kann ich die ComboBox mit Werten aus einer anderen Tabelle füllen?
Du kannst die List-Eigenschaft der ComboBox verwenden, um Werte aus einem bestimmten Bereich einer anderen Tabelle zu laden, wie im Beispielcode gezeigt.

2. Funktioniert das auch in Excel Online?
AktiveX-Controls sind in Excel Online nicht verfügbar. Diese Anleitung gilt nur für die Desktop-Version von Excel.

3. Kann ich mehrere ComboBoxen gleichzeitig verwenden?
Ja, du kannst mehrere ComboBoxen in einem Arbeitsblatt verwenden. Achte allerdings darauf, dass du die jeweiligen Change()-Ereignisse für jede ComboBox individuell definierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige