Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige