Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dynamische Listbox an verbundenen Zellen

Dynamische Listbox an verbundenen Zellen
27.09.2012 09:53:33
LASH
Ich habe einen sehr hilfreichen Beitrag im Archiv gefunden und wollte fragen ob mir jmd. bei einem kleinen Problem damit weiterhelfen kann.
Beitrag: https://www.herber.de/forum/archiv/772to776/t773626.htm#773916
Die dynamische Multi Select Listbox (von fcs aka FranK) funktioniert wunderbar, allerdings nur bei einzelnen Zellen. Klicke ich auf einen Zellenverbund (mehrere Zellen in einer Spalte zu einer verbunden) erscheint leider keine Listbox mehr.
Ich weiss das verbundene Zellen "der Teufel" sind, allerdings lassen sie sich in meinem Fall nicht vermeiden.
Vielen Dank schon mal fuer etwaige Hilfen.
Lars

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Dynamische Listbox an verbundenen Zellen
29.09.2012 17:29:03
fcs
Hallo Lars,
mit den folgenden Anpassungen können auch verbunden Zellen bearbeitet werden.
Gruß
Franz
Option Explicit
'Auswahl in einer Listbox mit Mehrfachauswahl in eine Zelle übertragen
Dim AendernLB1  As Boolean 'Change-Ereignis der Listbox1 steuern
Private Const Sep As String = " : " 'Trennzeichen zwischen den Werten
Private Sub ListBox1_Change()
Dim I As Integer
Dim Auswahl As String
With ListBox1
If .LinkedCell = "" Or AendernLB1 = False Then Exit Sub
For I = 0 To .ListCount - 1
If .Selected(I) = True Then
If Auswahl = "" Then
Auswahl = .List(I)
Else
Auswahl = Auswahl & Sep & .List(I)
End If
End If
Next I
ActiveSheet.Range(.LinkedCell).Cells(1, 1).Value = Auswahl
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim Wert, I As Integer, J As Integer, Werte() As String
' In der nächsten Zeile den Zellbereich festlegen in dem die Listbox wirksam sein soll
If Not Intersect(Target, ActiveSheet.Range("B2:B21")) Is Nothing _
And (Target.Cells.Count = 1 Or Target.MergeCells = True) Then
Wert = Target.Cells(1, 1).Value
Target.ClearContents ' erforderlich, da bei gefüllten Zellen sonst Fehlermeldung bei  _
Multiselectbox
With ListBox1
.LinkedCell = Target.Cells(1, 1).Address
' Listbox rechts neben der aktiven Zelle positionieren
.Top = Target.Cells(1, 1).Top
.Left = Target.Cells(1, 1).Offset(0, 1).Left
' Auswahlliste an Zellwert anpassen
Target.Cells(1, 1).Value = Wert
AendernLB1 = False 'Schalter setzen, damit Change-Ereignis der Listbox nicht ausgeführt  _
wird
For I = 0 To .ListCount - 1
.Selected(I) = False
Next
.Visible = True
If Not IsEmpty(Target) Then
'Werte ermitteln
ReDim Werte(0 To .ListCount - 1)
I = 0
Do Until InStr(1, Wert, Sep) = 0
Werte(I) = Left(Wert, InStr(1, Wert, Sep) - 1)
Wert = Mid(Wert, InStr(1, Wert, Sep) + Len(Sep))
I = I + 1
Loop
Werte(I) = Wert
'Werte in Liste markieren
For I = 0 To .ListCount - 1
If Werte(I) = "" Then Exit For
For J = 0 To .ListCount - 1
If Werte(I) = .List(J) Then
.Selected(J) = True
End If
Next J
Next I
End If
AendernLB1 = True 'Change-Ereignis der Listbox wieder aktivieren
' Listbox einblenden
End With
Else
With ListBox1
.LinkedCell = "" 'keine Zelle der Listbox zuordnen
.Visible = False ' Listbox ausblenden
End With
End If
End Sub

Anzeige
AW: Dynamische Listbox an verbundenen Zellen
04.10.2012 09:24:21
LASH
Incredible.
Vielen Dank.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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