Mehrspaltige Combobox
#1
Hallo!

Ich hoffe ihr könnt mir helfen.
Ich würde gerne in Excel ein Kassabuch erstellen, in dem zeilenweise Zahlungsein- und ausgänge erfasst werden. Dazu wird eine Kontonummer eingegeben - die Eingabe der Kontonummer soll auf eine Liste von möglichen Kontonummern eingeschränkt werden und per Combobox ausgewählt werden können.

Die verfügbaren Konten sind in einer eigenen Tabelle gespeichert. Wenn ich die "Datenüberprüfung" auf "Liste" einstelle, und als Quelle die Spalte mit den Kontonummern eingebe, klappt das einwandfrei. Allerdings hätte ich gerne, dass zur Kontonummer in der Combobox die Konto-Bezeichnung mit angezeigt wird - denn ich kenne die Kontonummern ja nicht alle auswendig.

Das bringe ich mit der "Datenüberprüfung" nicht hin.
Mit dem ActiveX-Steuerelement "Kombinationsfeld" schaffe ich das, in dem ich der Zellen-Auswahl für Kontonummern und Bezeichnungen einen Namen gebe und diesen als "ListFillRange" in den Eigenschaften eintrage. Jedoch kann ich diese eigenständige Combobox nur mit einer "LinkedCell" Zelle verknüpfen. Und ich hätte die Combobox ja gerne je Zeile in der Spalte "Konto" zur Verfügung.

Hab ihr eine Idee wie ich das hinbekomme?
Die ActiveX-Elemente scheinen da nicht der richtige Ansatz zu sein ...

Lg
Top
#2
Hallo,

mit folgendem Code, der in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes kommt, wird die aktive Zelle zur LinkedCell der ComboBox gemacht:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.ComboBox1.LinkedCell = ActiveCell.Address
End Sub
Gruß Uwe
Top
#3
Danke.
Damit wird die Combobox immer mit der aktuell selektierten Zelle verlinkt.
Jedoch habe ich weiterhin nur eine Combobox in der Mappe. Eine eigene Combobox für jede Zeile, wie bei der Datenprüfung-Einstellung "Liste" bekomme ich nicht hin ...
Top
#4
Hallo,

das willst du nicht wirklich!? Eine CB reicht doch. Man kann sie ja auch immer an die jeweilige Zelle setzen.

PS: So könnte der Code dann aussehen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target.Cells(1)
If .Column = 1 Then 'wenn Zelle in Spalte A markiert
ComboBox1.LinkedCell = .Address
ComboBox1.Top = .Top
ComboBox1.Left = .Left
ComboBox1.Visible = True
Else
ComboBox1.Visible = False
End If
End With
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • ideal00
Top
#5
Perfekt, genau so habe ich mir das vorgestellt!  
Vielen Dank, Uwe! Thumps_up
Top


Gehe zu:


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