AW: Listbox auswahl als adresse ausgeben
18.04.2021 20:29:36
EtoPHG
Hallo Daniel,
Du sagst zwar, was du willst, aber nicht wann du diese Msgbox erscheinen soll.
Ein Listbox, die mit deinem Code befüllt wurde, hat keine Verbindung mehr zur Quelle.
Da deine Befüllung von der Fontfarbe der Zelle in A abhängig ist, kann aus dem .Listindex nicht abgeleitet werden aus welcher Quelladresse (bzw. Zeile) die Daten stammen.
Es bietet sich an die Zeilennumer oder Zelleadresse beim Laden der Listbox in einer 5ten Spalte zu speichern und beim Klick in die Listbox diese auszugeben.
Die 5te Spalte muss nicht angezeigt werden. Dazu schreibst du folgende Codes in die Userform:
Option Explicit
Private Sub ListBox1_Click()
With ListBox1
MsgBox .List(.ListIndex, 4)
End With
End Sub
Private Sub UserForm_Initialize()
Dim rngBereich As Range
Dim ws As Worksheet
Set ws = Worksheets(10)
With ListBox1
.ColumnCount = 5
.ColumnWidths = "180;180;100;10;0" 'Breite der Spalte
.Font.Size = 12
For Each rngBereich In ws.Range("A2:A25")
If rngBereich.Font.ColorIndex = 3 Then
.AddItem rngBereich.Text
.List(.ListCount - 1, 1) = rngBereich.Offset(, 1).Text
.List(.ListCount - 1, 2) = rngBereich.Offset(, 2).Text
.List(.ListCount - 1, 3) = rngBereich.Offset(, 3).Text
.List(.ListCount - 1, 4) = rngBereich.Address
End If
Next rngBereich
End With
End Sub
Gruess Hansueli