Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Listbox dynamisch letzten 5 Einträge aus Worksheet einlesen
#1
Hi Leute bin echt schon am verzweifeln!

Und zwar würde ich gerne eine ListBox mit meinen letzten 5 Einträge aus einem Blatt wo ständig neue Daten eigegeben werden, befüllen.
Ich komme nur zu der Lösung wo mir alles in der Listbox angezeigt wird und die letzte Zeile ausgewählt ist.

Code momentan:

Private Sub UserForm_Initialize()
History.RowSource = "test!A13:R" & Range("R" & Rows.Count).End(xlUp).Row

If History.ListCount > 0 Then
History.ListIndex = History.ListCount - 1
End If
End Sub

"History" ist der Name der ListBox1

Villeicht kann mir wer helfen...

Danke!


Angehängte Dateien Thumbnail(s)
       
Antworten Top
#2
Bitte keine Bilder !

z.B.

Code:
With Sheets(1).Columns(18).SpecialCells(2)
  Listbox1.List = .Offset(.Count - 5).SpecialCells(2).Value
End With
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • fr33lumby
Antworten Top
#3
Code:
With Worksheets("test").Columns(18).SpecialCells(2)
  History.List = .Offset(.Count - 5).SpecialCells(2).Value
End With

Also code läuft, Ergebnis jedoch noch nicht passend leider. Das mit den Letzten 5 Einträgen klappt, jedoch nimmt er nur die Einträge der Spalte 18 und nicht 1-18.
Trotzdem Danke für die schnelle Antwort!!!

Siehe Anhang

edit: Das mit den Bildern erst im nachhinein gelesen, wie sonst?


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#4
Hi,

snb hat sicherlich eine Beispieldatei (.xlsx) gemeint.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • fr33lumby
Antworten Top
#5
@WW

Genau !

Code:
With Sheets(1).Columns(18).SpecialCells(2)
  Listbox1.List = .Offset(.Count - 5).SpecialCells(2).Offset(, -17).Resize(, 18).Value
End With

NB. Verzichte auf 'Rowsource'
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • fr33lumby
Antworten Top
#6
Hallo,

so:

Code:
Private Sub UserForm_Initialize()
Dim loLetzte As Long, loErste As Long

With Worksheets("test")
   loLetzte = .Cells(.Rows.Count, "N").End(xlUp).Row
   loErste = loLetzte - 4
   History.RowSource = "test!A" & loErste & ":R" & loLetzte
End With
End Sub


Gruß Werner
Antworten Top
#7
@snb

DANKE!!!! Das ist genau das was ich gesucht habe. Eine Frage bleibt jedoch wie bekomme ich den "ColumnHead"
wieder in die Liste, bei Eigenschaften am Objekt ist es aktiviert.

@Werner

dein Code funktioniert ebenfalls DANKE! Jedoch funktioniert das mit dem "ColumnHead" nicht.
Antworten Top
#8
Versuch mal:

Code:
       listbox1.AddItem Sheets(1).Cells(1).Resize(, 18).Value, 0
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
@snb dann kommt ein Laufzeitfehler -2147.......

edit: Typkonflikt
Antworten Top
#10
Hallo,

ColumnHead benutze ich nie. Einfach 18 Label mit entsprechender Beschriftung direkt oberhalb deiner Listboxspalten und gut ist.

Gruß Werner
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste