Anzeige
Archiv - Navigation
1516to1520
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 die letzten Einträge anzeigen

Listbox die letzten Einträge anzeigen
03.10.2016 10:53:06
Peter
Hallo Ihr Excelspezialisten,
nach langer Suche benötige ich Eure Hilfe.
Ich habe eine UserForm mit Listbox.
Diese Listbox fülle ich mit:
Private Sub UserForm_Initialize()
ActiveWorkbook.Worksheets(3).Activate
Dim i As Long
With ListBox1
.ColumnCount = 6
.ColumnWidths = "2cm;2cm;2cm;2cm;2cm;2cm"
For i = 1 To 1000
.AddItem Cells(i, 1) 'SpalteA in erste Spalte
.List(.ListCount - 1, 1) = Cells(i, 2) 'SpalteB in zweite Spalte
.List(.ListCount - 1, 2) = Cells(i, 3) 'SpalteC in dritte Spalte
.List(.ListCount - 1, 3) = Cells(i, 4) 'SpalteD in vierte Spalte
.List(.ListCount - 1, 4) = Cells(i, 5) 'SpalteE in fünfte Spalte
.List(.ListCount - 1, 5) = Cells(i, 6) 'SpalteF in sechste Spalte
Next
End With
End Sub
Nun möchte ich aber, dass die letzten 10 Zeilen der Einträge in der ListBox
angezeigt werden.
Mir fällt keine Lösung ein aber vielleicht Euch.
Besten Dank
Gruss Peter

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox die letzten Einträge anzeigen
03.10.2016 11:01:44
Gerd
Hallo Peter!
.
.ListIndex = .ListCount - 9
End With

Gruß Gerd
AW: Listbox die letzten Einträge anzeigen
03.10.2016 11:11:24
Nepumuk
Hallo,
so geht's ohne dass ein Wert selektiert wird:
With ListBox1
    .TopIndex = .ListCount - 10
End With

Gruß
Nepumuk
AW: Listbox die letzten Einträge anzeigen
03.10.2016 11:47:50
Peter
Hallo Nepomuk,
funktioniert leider nicht. Es sind jedoch vielleich nicht alle Faktoren bekannt gewesen.
Ich lade mal eine Musterdatei.
Hinweis: in der Tabelle sind in den Zeilen 1001 bis 1003 Werte enthalten.
diese werden durch Makro ausgeblendet.
In den Spalten C:F sind normalerweise Formeln enthalten.
In der Listbox sollen die jeweils unteren 10 Zeilen aus dem Bereich
letzte beschriebene Zelle von oben hier A11 : F20 angezeigt werden.
Jedoch mit jeder Zeile welche beschrieben wird muss dies variabel
erfolgen.
Vielleicht gibt es hierzu eine Lösung.
https://www.herber.de/bbs/user/108556.xlsm
Gruss Peter
Anzeige
AW: Listbox die letzten Einträge anzeigen
03.10.2016 11:46:42
Peter
Hallo Gerd,
funktioniert leider nicht. Es sind jedoch vielleich nicht alle Faktoren bekannt gewesen.
Ich lade mal eine Musterdatei.
Hinweis: in der Tabelle sind in den Zeilen 1001 bis 1003 Werte enthalten.
diese werden durch Makro ausgeblendet.
In den Spalten C:F sind normalerweise Formeln enthalten.
In der Listbox sollen die jeweils unteren 10 Zeilen aus dem Bereich
letzte beschriebene Zelle von oben hier A11 : F20 angezeigt werden.
Jedoch mit jeder Zeile welche beschrieben wird muss dies variabel
erfolgen.
Vielleicht gibt es hierzu eine Lösung.
https://www.herber.de/bbs/user/108556.xlsm
Gruss Peter
Anzeige
AW: Listbox die letzten Einträge anzeigen
03.10.2016 12:23:16
EtoPHG
Hallo Peter,
Ersetze deinen Code in der Userform_Initialize durch
Private Sub UserForm_Initialize()
Dim i As Long
With Worksheets("Tabelle1")           ' Ggf. Tabellenamen anpassen!
If .Cells(1000, 1)  "" Then
i = 1000
Else
i = .Cells(1000, 1).End(xlUp).Row
End If
End With
With ListBox1
.ColumnCount = 6
.ColumnWidths = "2cm;2cm;2cm;2cm;2cm;2cm"
For i = i - 10 To i
If i >= 2 Then
.AddItem Cells(i, 1) 'SpalteA in erste Spalte
.List(.ListCount - 1, 1) = Cells(i, 2) 'SpalteB in zweite Spalte
.List(.ListCount - 1, 2) = Cells(i, 3) 'SpalteC in dritte Spalte
.List(.ListCount - 1, 3) = Cells(i, 4) 'SpalteD in vierte Spalte
.List(.ListCount - 1, 4) = Cells(i, 5) 'SpalteE in fünfte Spalte
.List(.ListCount - 1, 5) = Cells(i, 6) 'SpalteF in sechste Spalte
End If
Next
End With
End Sub
Gruess Hansueli
Anzeige
AW: Listbox die letzten Einträge anzeigen
03.10.2016 12:28:24
Peter
Hallo Hansueli,
besten Dank für Deine Hilfe. Funktioniert einwandfrei.
Möchte dem ganzen Team meinen besten Dank aussprechen.
Wünsche noch einen schönen Feiertag.
Gruss Peter
AW: Listbox die letzten Einträge anzeigen
03.10.2016 13:13:19
Peter
Hallo Hansueli,
nach nochmaligem Test funktioniert leider ein Teil nicht.
Es werden zwar die letzten 10 Zeilen angezeigt nicht jedoch die Zeilen 1001 bis 1003.
Vielleicht kennst Du auch hier die Lösung.
Besten Dank.
Gruss Peter
AW: Listbox die letzten Einträge anzeigen
03.10.2016 16:47:42
EtoPHG
Hallo Peter,
Weiter oben schreibst du:
Hinweis: in der Tabelle sind in den Zeilen 1001 bis 1003 Werte enthalten.
diese werden durch Makro ausgeblendet.

und in deinem Beispiel steht in diesen Zellen überall "TEST".
Nun was willst du in der Listbox anzeigen, wie deine Beispieldaten aufgebaut sind?
Gehören die Zeilen 1000-1003 zu den letzten 10, wenn zwischen 999 und 127 lauter Leerzeilen sind?
Irgendwie bring ich das nicht auf die Reihe, darum hab ich den Bereich für die Anzeige auf die Zeile bis max. 1'000 beschränkt.
Gruess Hansueli
Anzeige
AW: Listbox die letzten Einträge anzeigen
03.10.2016 18:58:56
Peter
Hallo Hansueli,
da ist mir ein Fehler unterlaufen. Es sollte natürlich heissen, dass die Leerzeilen ausgeblendet werden.
Angezeigt werden sollen die untersten 3 Zeilen, sowie die 7 Zeilen darüber, falls dies möglich ist.
Nachdem ich Dich nochmals bemühen muss, wäre es auch schön, wenn die letzte Zeile der Daten bzw. die vierte Zeile von unten markiert wird. Dies aber immer dann, wenn ein neuer Datensatz eingefügt wurde.
Besten Dank für Deine Mühe.
Gruss Peter
AW: Listbox die letzten Einträge anzeigen
03.10.2016 19:26:49
Matthias
Hallo
Dann lies doch nur die Daten in die Listbox in denen auch was steht
  With ListBox1
.ColumnCount = 6
.ColumnWidths = "2cm;2cm;2cm;2cm;2cm;2cm"
For i = 1 To 1003
If Cells(i, 1)  "" Then
.AddItem Cells(i, 1) 'SpalteA in erste Spalte
.List(.ListCount - 1, 1) = Cells(i, 2) 'SpalteB in zweite Spalte
.List(.ListCount - 1, 2) = Cells(i, 3) 'SpalteC in dritte Spalte
.List(.ListCount - 1, 3) = Cells(i, 4) 'SpalteD in vierte Spalte
.List(.ListCount - 1, 4) = Cells(i, 5) 'SpalteE in fünfte Spalte
.List(.ListCount - 1, 5) = Cells(i, 6) 'SpalteF in sechste Spalte
End If
Next
.ListIndex = .ListCount - 4
.TopIndex = .ListCount - 4
End With
Userbild
Gruß Matthias
Anzeige
AW: Listbox die letzten Einträge anzeigen
03.10.2016 19:31:30
Peter
Hallo Matthias,
das ist genau das, was ich gesucht habe.
Vielen Dank für Deine Hilfe.
Wünsche Dir noch einen schönen Abend.
Gruss Petetr
Danke für Deine Rückmeldung ... owT
03.10.2016 19:33:35
Matthias
AW: noch ein kleiner Fehler
04.10.2016 08:19:07
Peter
Hallo Matthias,
ich habe heute den Code in die Orginaldatei eingebaut.
Es handelt sich hierbei um die ListBox1 in der Multipage1 auf der UF_Gesamtbereich.
Es wird die Tabelle ohne Leerzeilen mit Markierung der letzten Zeile angezeigt was jedoch nicht geschieht ist, dass die ListBox die letzte Zeile anzeigt sondern die erste. Wie kann ich erreichen, dass die Listbox nach unten scrollt.
Gruss Peter
lad die Mappe hoch
04.10.2016 16:51:34
Matthias
Hallo
Zum Rätselraten hat hier keiner wirklich Lust
Lad die Mappe hoch, damit man das auch nachvollziehen kann.
Gruß Matthias
Anzeige
AW: lad die Mappe hoch
05.10.2016 09:36:45
Peter
Hallo Matthias,
die von mir gefertigte Orginaldatei ist extrem umfangreich und kann gar nicht hochgeladen werden.
Auch wenn Du es vielleicht nicht nachvollziehen kannst - in der Probedatei läuft die Userform einwandfrei in der Orginaldatei läuft das selbe nicht.
Ich habe jetzt eine neue Userform aufgebaut im gleichen Stil und umfang - eigenartigerweise - es läuft.
Deine, Eure Hilfen funktionieren einwandfrei.
Nochmals besten Dank.
Gruss Peter
AW: Listbox die letzten Einträge anzeigen
04.10.2016 08:27:41
EtoPHG
Hallo Peter,
Ich werde mich in Zukunft hüten auf Deine Anfragen zu antworten ;-)
Ein Drama in 8 Akten:
1. Betreff: Listbox die letzten Einträge anzeigen.
2. Nun möchte ich aber, dass die letzten 10 Zeilen der Einträge in der ListBox
angezeigt werden.

3. Hinweis: in der Tabelle sind in den Zeilen 1001 bis 1003 Werte enthalten.
diese werden durch Makro ausgeblendet.

4.Funktioniert einwandfrei.
5.Es werden zwar die letzten 10 Zeilen angezeigt nicht jedoch die Zeilen 1001 bis 1003.
6.Es sollte natürlich heissen, dass die Leerzeilen ausgeblendet werden. Angezeigt werden sollen die untersten 3 Zeilen, sowie die 7 Zeilen darüber, falls dies möglich ist.
7....wenn die letzte Zeile der Daten bzw. die vierte Zeile von unten markiert wird. Dies aber immer dann, wenn ein neuer Datensatz eingefügt wurde.
8.das ist genau das, was ich gesucht habe.
Nein, ist es nicht!
Gruess Hansueli
Anzeige
AW: Listbox die letzten Einträge anzeigen
04.10.2016 08:42:41
Peter
Guten Morgen Hansueli,
es tut mir Leid, dass ich etwas umständlich an die Sache herangegangen bin.
Ich habe in einer Musterdatei meine Anfrage aufgebaut und leider immer wenn ich eine Lösung hatte festgestellt, dass noch etwas fehlt. In meiner Musterdatei läuft auch alles perfekt. Als ich jetzt das ganze in Hauptdatei übernommen habe, habe ich leider festgestellt, dass eben nur fast alles funktioniert. Es wird wie bereits beschrieben, die Listbox richtig gefüllt, aber eben nicht die letzten Einträge angezeigt sondern die ersten.
Bitte prüfe nochmals, ob dies gelöst werden kann.
Dies ist der Teil, welchen ich in die UserForm_Initialize übernommen habe:
Worksheets(1).Activate
UF_Gesamtbereich.ListBox1.Clear
With UF_Gesamtbereich.ListBox1
.ColumnCount = 6
.ColumnWidths = "2,5cm;6,4cm;2,5cm;2,5cm;2,5cm;2,5cm"
For i = 3 To 1003
If Cells(i, 1) "" Then
.AddItem Cells(i, 1) 'SpalteA in erste Spalte
.List(.ListCount - 1, 1) = Cells(i, 2) 'SpalteB in zweite Spalte
.List(.ListCount - 1, 2) = Cells(i, 3) 'SpalteC in dritte Spalte
.List(.ListCount - 1, 3) = Cells(i, 4) 'SpalteD in vierte Spalte
.List(.ListCount - 1, 4) = Cells(i, 5) 'SpalteE in fünfte Spalte
.List(.ListCount - 1, 5) = Cells(i, 6) 'SpalteF in sechste Spalte
End If
Next
.ListIndex = .ListCount - 4
.TopIndex = .ListCount - 4
End With
Besten Dank für Deine Hilfe.
Gruss Peter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige