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

Forumthread: Listbox aus nicht aktiver Tabelle füllen

Listbox aus nicht aktiver Tabelle füllen
22.12.2018 20:54:19
Philipp
Guten Tag lieber Forumsmitglieder,
ich sitze den halben Tag erfolglos daran ein bestimmtes Problem zu lösen. Auch die Suche im Forum konnte mir nicht helfen.
In meiner Excel Arbeitsmappe befinden sich drei Tabellen. In der ersten Tabelle ("Stammblatt") befinden sich Personaldaten. Die Nachnamen befinden sich in Spalte V. Die Vornamen in Spalte W, die Personalnummer in Spalte X und das Einstellungsdatum in Spalte Y. Jeweils ab der dritten Zeile.
Ich habe eine UserForm mit einer ListBox erstellt. Greife ich auf die UserForm von Tabelle 1 ("Stammblatt") zu, füllt sich die darin befindliche ListBox mit den Personaldaten. Greife ich auf die UserForm von Tabelle 3 ("UB-Frontseite") zu füllt sich die ListBox leider nicht.
Hier der Code:
Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'Dim strLastSheet As String
'strLastSheet = ActiveSheet.Name
If IsNull(ListBox1.Value) Then
MsgBox "Sie haben nichts ausgewählt!"
Exit Sub
Else
Personalnummer = ListBox1.Value
If ActiveSheet Is Sheets("Stammblatt") Then Sheets("Stammblatt").Range("D6").Value =  _
Personalnummer
If ActiveSheet Is Sheets("UB-Frontseite") Then Sheets("UB-Frontseite").Range("O13").Value =  _
Personalnummer
Unload Me
End If
End Sub

Private Sub TextBox1_Change()
Dim arr() As Variant
Dim index As Long, iCount As Long
x = IIf(IsEmpty(Sheets("Stammblatt").Range("V65536")), Sheets("Stammblatt").Range("V65536").End( _
xlUp).Row, 65536)
If TextBox1.Value = "" Then
ListBox1.RowSource = "V3:Y" & x
Exit Sub
End If
ListBox1.RowSource = ""
ListBox1.Clear
For index = 3 To x ' die Zahl 3 gibt an ab welcher Zeile gesucht werden soll
If LCase(Left(Sheets("Stammblatt").Cells(index, 22), Len(TextBox1))) = LCase(TextBox1) Then
If Sheets("Stammblatt").Cells(index, 22)  "" Then
On Error Resume Next
ReDim Preserve arr(2, 0 To iCount)
arr(0, iCount) = Sheets("Stammblatt").Cells(index, 22)
arr(1, iCount) = Sheets("Stammblatt").Cells(index, 23)
arr(2, iCount) = Sheets("Stammblatt").Cells(index, 24)
arr(3, iCount) = Sheets("Stammblatt").Cells(index, 25)
iCount = iCount + 1 ' das + 1 zeigt nach einem Testboxwechsel alle Fahrpersonale  _
mit diesen Buchstabenkombinationen an
ListBox1.Column = arr
End If
End If
Next
On Error GoTo 0
End Sub
Private Sub UserForm_Initialize()
TextBox1 = ""
x = IIf(IsEmpty(Sheets("Stammblatt").Range("V65536")), Sheets("Stammblatt").Range("V65536").End( _
xlUp).Row, 65536)
ListBox1.RowSource = ("V3:y") & x
End Sub

Das merkwürdige ist: Wenn ich von Tabelle 3 die UserForm öffne und die TextBox nutze, um das Personal nach Nachnamen zu suchen, füllt sich die ListBox mit den Personaldaten.
Ich wäre sehr dankbar, wenn mir jemand helfen könnte den Code so zu ändern, dass die ListBox sich auch mit den Personaldaten füllt wenn ich von Tabelle 3 darauf zugreife, obwohl die Personaldaten in Tabelle 1 stehen.
MfG Philipp
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox aus nicht aktiver Tabelle füllen
22.12.2018 21:07:14
onur
Wie schliesst du die Userform?
Mit Hide oder Unload?
AW: Listbox aus nicht aktiver Tabelle füllen
22.12.2018 21:43:16
Philipp
Hallo onur,
Die UserForm wird über Unload Me geschlossen!
AW: Listbox aus nicht aktiver Tabelle füllen
22.12.2018 21:49:06
onur

Private Sub UserForm_Initialize()
TextBox1 = ""
x = IIf(IsEmpty(Sheets("Stammblatt").Range("V65536")), Sheets("Stammblatt").Range("V65536").End( _
_
xlUp).Row, 65536)
ListBox1.RowSource = ("V3:y") & x'HIER MUSST DU AUCH DAS BLATT ANGEBEN; SONST WIRD DAS  _
AKTUELLE BLATT GENOMMEN
End Sub

Anzeige
AW: Listbox aus nicht aktiver Tabelle füllen
22.12.2018 23:09:56
Philipp
Wie müsste der Code dann geschrieben sein?
Habe es heute schon auf die mir bekannten Weisen versucht. Leider immer ohne Erfolg:
Bei folgendem Code kommt die Fehlermeldung: "Anwendungs- oder objektdefinierter Fehler"
Private Sub UserForm_Initialize()
TextBox1 = ""
x = IIf(IsEmpty(Sheets("Stammblatt").Range("V65536")), Sheets("Stammblatt").Range("V65536").End( _
xlUp).Row, 65536)
ListBox1.RowSource = Sheets("Stammblatt").Range("V3:y") & x
End Sub

Bei folgendem Code kommt zwar keine Fehlermeldung, aber beim Zugriff von Tabelle 3 aus, werden keine Daten in die ListBox geladen:
Private Sub UserForm_Initialize()
TextBox1 = ""
x = IIf(IsEmpty(Sheets("Stammblatt").Range("V65536")), Sheets("Stammblatt").Range("V65536").End( _
xlUp).Row, 65536)
With Sheets("Stammblatt")
ListBox1.RowSource = ("V3:y") & x
End With
End Sub
Kannst du mir mir bitte ein Codebeispiel schreiben.
Anzeige
AW: Listbox aus nicht aktiver Tabelle füllen
22.12.2018 23:11:54
onur
ListBox1.RowSource = "Stammblatt!V3:y" & x
AW: Listbox aus nicht aktiver Tabelle füllen
22.12.2018 23:15:42
Philipp
Vielen herzlichen Dank! Der Code funktioniert!
AW: Listbox aus nicht aktiver Tabelle füllen
22.12.2018 23:24:41
onur
Ich hoffe doch, du hast alle beide Zeilen geändert.
Anzeige
AW: Listbox aus nicht aktiver Tabelle füllen
22.12.2018 23:40:19
Philipp
ja, dass habe ich. Vielen Dank der Nachfrage!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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