Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
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
In Listbox nur bestimmte Zeilen einlesen
08.02.2014 22:28:51
Andreas
Hallo zusammen,
ich stehe mit dem gesamten Bereich der Listboxen extrem auf Kriegsfuss und bräuchte daher mal Eure Unterstützung.
Mit folgendem Code lese ich den Inhalt des Tabellenblattes "Artikel" in die ListBox1 ein :
Private Sub UserForm_Initialize()
With Sheets("Artikel")
ListBox1.RowSource = .Name & "!" & .Range(.Cells(2, 1), .Cells(.Range("A1").End(xlDown). _
Row, 5)).Address
End With
ListBox1.ColumnCount = 5
ListBox1.ColumnWidths = ("200 Pt;225 Pt;60 Pt;60 Pt;50 Pt")
End Sub
Das klappt auch soweit.
Aber nun möchte ich, dass nur die Zeilen des Tabellenblattes "Artikel" in der Listbox auftauchen, die in Spalte 'E' einen Eintrag haben. Alle anderen sollen nicht eingelesen werden.
Geht das ? Und wenn ja, dann wie ? Mir fehlt echt jeder sinnvolle Ansatzpunkt in Verbindung mit dem Einlesen von Daten in die Listbox........ ;-(
Danke für Eure Hilfe und Tipps.
Viele Grüße
Andreas

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 09:30:56
Hajo_Zi
Hallo Andreas,
Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Ein Nachbau sieht bestimmt anders aus als das Original.
Ein Link zur Datei wäre nicht schlecht.
Mal ein Zitat von Hasso:
"Stell dir mal vor, deine Oma schreibt dir zum Geburtstag und sagt, die Geschenke findest du im Päckchen. Darin sind dann aber nur Bilder von den Geschenken - dann wärst du genauso begeistert wie wir jetzt."
Du weist oben nur eine Spalte zu unten aber 5 warum?
Dies wird gelöst dies indem jeden Datensatz einzeln zugewiesen wird AddItem.

Anzeige
AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 10:14:13
Luschi
Hallo Andreas,
auch wenn ich mit Hajos blöden Sprüchen auf dem Kriegsfuß stehe, in einem hat er aber recht:
- ohne Beispieldatei mache ich in diesem Jahr keine theoretischen Aussagen mehr.
Gruß von Luschi
aus klein-Paris

AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 10:19:35
Hajo_Zi
auf Deinen Beitrag trifft also das gleich zu wie auf meinen. Es ist also auch ein blöder Spruch.
Gruß Hajo

AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 10:52:04
Andreas
Ok, ihr habt ja Recht, mit Datei ist es einfacher ;-))
Also hier ist sie........und danke für Eure Hilfe.....
https://www.herber.de/bbs/user/89193.xlsx
Viele Grüße
Andreas

Anzeige
AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 10:54:51
Hajo_Zi
Hallo Andreas,
man muss nicht alle Fragen beantworten, die haben wir nur gestellt da Zeit war.
Ich kann da Leider nichts machen, da die Datei keine UserForm hat, es ist wohl die falsche Datei.
Gruß Hajo

AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 10:59:06
Andreas
Sorry, bin wohl noch nicht ganz wach, falsche Datei erwischt...
Nimm diese
https://www.herber.de/bbs/user/89194.xlsm
Gruß
Andreas

AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 11:07:45
Hajo_Zi
Hallo Andreas,
ich interpretiere dies mal so Du möchtest die Lösung selber an Deine Bedingungen anpassen, darum werden Fragen nicht beantwortet. Viel Erfolg.
Private Sub UserForm_Activate()
Dim Loletzte As Long
Dim LoI As Long
Loletzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
For LoI = 2 To Loletzte
If Cells(LoI, 5)  "" Then
ListBox1.AddItem Cells(LoI, 1)
End If
Next LoI
End Sub
Private Sub UserForm_Initialize()
'' Hebt den Blattschutz des Tabellenblattes "Artikel" auf und sortiert nach Artikel-ID
'Application.ScreenUpdating = False
'Worksheets("Artikel").Select
'    ActiveSheet.Unprotect
'    Range("A1:E491").Select
'    ActiveWorkbook.Worksheets("Artikel").Sort.SortFields.Clear
'    ActiveWorkbook.Worksheets("Artikel").Sort.SortFields.Add Key:=Range("E2:E491" _
'        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'    ActiveWorkbook.Worksheets("Artikel").Sort.SortFields.Add Key:=Range("A2:A491" _
'        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'    With ActiveWorkbook.Worksheets("Artikel").Sort
'        .SetRange Range("A1:E491")
'        .Header = xlYes
'        .MatchCase = False
'        .Orientation = xlTopToBottom
'        .SortMethod = xlPinYin
'        .Apply
'    End With
'    Range("A1").Select
''Liest den Inhalt des Tabellenblattes "Artikel" in die Listbox1 ein
'    With Sheets("Artikel")
'        ListBox1.RowSource = .Name & "!" & .Range(.Cells(2, 1), .Cells(.Range("A1").End(xlDown) _
.Row, 5)).Address
'    End With
'    ListBox1.ColumnCount = 5
'    ListBox1.ColumnWidths = ("200 Pt;200 Pt;75 Pt;75 Pt;50 Pt")
End Sub

Gruß Hajo

Anzeige
AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 11:25:10
Andreas
@Hajo
Was willst Du mir mit der Anmerkung "...darum werden Fragen nicht beantwortet" mitteilen ?
Gruß
Andreas
@hary
Danke Dir, jetzt werden zwar nur die Spalten angezeigt, die in Spalte E einen Eintrag haben, allerdings wird nur der Inhalt der Spalte A in der Listbox angezeigt. Ich bräuchte aber die Inhalte der Spalten A-E in der Listbox....könntest Du mir den Code dafür evtl. anpassen ?
Danke vorab
Andreas

AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 11:26:58
Hajo_Zi

Du möchtest die Lösung selber an Deine Bedingungen anpassen
Gruß Hajo

Anzeige
AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 11:31:43
Andreas
@Hajo
Ja sicher, ich hatte nicht erwartet, dass mir ein kompletter VBA-Code zur Verfügung gestellt wird. Daher hatte ich ja versucht, mittels Problembeschreibung und nachgelieferter Musterdatei das Problem so gut wie möglich zu schildern............ ?
Gruß
Andreas

AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 11:33:55
Hajo_Zi
ja und ich habe mich an Deinen Code gehalten, da meine Fragen nicht beantwortet wurden und wie Du schreibst möchtest Du die Anpassung selber vornehmen also stelle den Beitrag nicht auf offen.
Gruß Hajo

Anzeige
AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 11:43:36
Andreas
@Hajo
Waren dieses Deine Fragen ?
Du weist oben nur eine Spalte zu unten aber 5 warum?
Dies wird gelöst dies indem jeden Datensatz einzeln zugewiesen wird AddItem.
Die sind in Deiner nicht sehr hilfreichen Geschichte mit der Oma und den Geschenken irgendwie untergegangen, sorry.
Wie ich in meiner Fragestellung schon geschrieben habe bin ich was Listboxen angeht ziemlich planlos. Daher frage ich mich, ob es nicht einfach möglich ist hier eine Hilfestellung zu geben, ohne in jedem Posting irgendeine Belehrung abzugeben ? Nur das würde mir helfen, alles andere eher nicht.
Dieser Thread ist jetzt schon mit soviel sinnlosem Inhalt zugemüllt, dass man mir hier jetzt bestimmt noch helfen wird...........
Gruß
Andreas

Anzeige
AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 13:44:05
Andreas
Hi Hary,
vielen Dank für Deine Mühe. Das sieht soweit gut aus, aber ich bräuchte die Überschriften der jeweiligen Spalten des Tabellenblattes ARTIKEL ebenfalls in der Listbox. Soweit ich im Internet erlesen habe, unterstützt die .AddItem-Funktion dieses aber wohl nicht.
Leider bin ich selbst nicht in der Lage das entsprechend umzustricken, weißt Du Rat ?
Viele Grüße
Andreas

AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 14:43:46
hary
Moin Andreas
Da hast du recht. Mach einfach Labels ueber die Spalten. Die groessen anpassen bekommst du ja hin.
https://www.herber.de/bbs/user/89196.xlsm
gruss hary

Anzeige
AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 15:55:18
Andreas
Manchmal sieht man echt den Wald vor lauter Bäumen nicht mehr.
Auf die Idee mit den Labels bin gar nicht gekommen. Coole Sache, so geht es nun.
Danke für die Hilfe und schönes restliches Wochenende
Andreas

AW:Gern geschehen dann Thread zu gruss owT
09.02.2014 18:37:37
hary
.

AW: In Listbox nur bestimmte Zeilen einlesen
09.02.2014 11:09:06
hary
Moin
Mit AddItem Methode.
Dim i As Long
Dim zeile As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 5)  "" Then
ListBox1.AddItem Cells(i, 1)
ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(i, 2)
'usw.
End If
Next

gruss hary

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige