Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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.

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige