Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox mit indirekten Bezug

Forumthread: Listbox mit indirekten Bezug

Listbox mit indirekten Bezug
12.12.2019 13:45:47
Erik
Hallo Excel-Team,
ich habe schon ein sehr gutes Tool von Euch (franz fcs) bekommen,
muss es aber weiter anpassen.
In meiner Listbox werden Daten aus der Tabelle eingelesen, und der Status wird wieder zurückgeschrieben.
Zur Zeit liest die Listbox den händisch eingetragenen Datenbankbezug direkt aus der RowSource im Eigenschaftenfenster aus.
Das will ich aber ändern. Der Bezug der Datenquelle soll aus dem Zellinhalt dem Tabellenblatt Türliste in der z.B.: Zelle B4 ausgelesen werden.
Ist das möglich?
Kann jemand helfen?
Hier die code:
Private bolInit As Boolean 'Merker das Markierungen aus Tabelle in Listbox gesetzt werden
Private Sub ReadWrite_ListBox_DB_select(ByVal bolRead As Boolean)
'markierte Zeilen in Listbox selektieren (bolRead = True) _
oder Listbox-Auswahl in Tabelle eintragen bolRead = False)
Dim iItem As Integer
Dim strSource As String
Dim wksSource As Worksheet, strRange As String
'Datenquelle aus Eigenschaften der Listbox in Variable einlesen und ggf _
Hochkommata entfernen
strSource = Replace(Me.ListBox_DB_select.RowSource, "'", "")
'Tabellenblatt mit Quelldaten setzen
Set wksSource = ThisWorkbook.Worksheets(Left(strSource, InStr(1, strSource, "!") - 1))
'Zellbereich der Quelle auslesen
strRange = Mid(strSource, InStr(1, strSource, "!") + 1)
With wksSource.Range(strRange)
For iItem = 0 To Me.ListBox_DB_select.ListCount - 1
If bolRead = True Then
'ggf. Eintrag in Listbox markieren
Me.ListBox_DB_select.Selected(iItem) = _
LCase(.Cells(iItem + 1, 1).Offset(0, 3).Value) = "x"
Else
'Eintrag in Tabellenblatt markieren
If Me.ListBox_DB_select.Selected(iItem) = True Then
.Cells(iItem + 1, 1).Offset(0, 3).Value = "x"
Else
.Cells(iItem + 1, 1).Offset(0, 3).Value = "o"
End If
End If
Next
End With
End Sub

Private Sub CommandButton1_Click()
If bolInit = True Then Exit Sub
Call ReadWrite_ListBox_DB_select(bolRead:=False)
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
'markierte Zeilen in Tabelle in Listbox selektieren
bolInit = True
Call ReadWrite_ListBox_DB_select(bolRead:=True)
bolInit = False
End Sub
Ich habe die Datei mal hier abgelegt.
https://www.herber.de/bbs/user/133738.xlsm
mfg
Erik
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox mit indirekten Bezug
13.12.2019 11:31:03
Matthias
Moin!
Du müsstest einfach nur den Zellwert auslesen:
strSource = worksheets("Türliste").range("B4")

Danach geht es normal im Code weiter. Ggf. noch die Anstriche entfernen, wenn du die mit drin hast. Dann so:
strSource = Replace(worksheets("Türliste").range("B4"), "'", "")

VG
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