Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
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

nur halbe Daten bei Listbox-Darstellung

nur halbe Daten bei Listbox-Darstellung
03.11.2016 12:12:24
Dennis
Hallo Zusammen,
ich habe mir eine UF gebastelt, Basis Dafür ist die Datei: https://www.herber.de/bbs/user/77070.xlsm
aus dem Topic "Listbox filtern Combobox" von 2011.
Mein Problem ist, dass ich die Daten soweit alle anpassen konnte und auch alles in das Array geschrieben wird. Die Vergleiche passen auch alle, aber es werden nur 10 der 18 Zeilen in der Listbox angezeigt und ich finde einfach den Fehler nicht :(
Hier mal der Quellcode:
Public chk As Boolean
Sub checkit()
Dim ar(18) As Variant, objMyDic As Object, i As Long, tempStr1 As String, tempStr2 As String, IntC As Integer, row_ As Integer
Set objMyDic = CreateObject("Scripting.Dictionary")
If chk = True Then
Cont99.Clear
For i = 1 To 17
If Controls("Cont" & i).Value = "" Then ar(i - 1) = "*" Else ar(i - 1) = Controls("Cont" & i).Value
tempStr1 = tempStr1 & ar(i - 1) & "/"
Controls("Cont" & i).Clear
Controls("Cont" & i) = IIf(ar(i - 1) = "*", "", ar(i - 1))
Next
For IntC = 1 To 17
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
tempStr2 = Cells(i, 1) & "/" & Cells(i, 2) & "/" & Cells(i, 3) & "/" & Cells(i, 4) & "/" & Cells(i, 5) & "/" & Cells(i, 6) & "/" & Cells(i, 7) & "/" & Cells(i, 8) & "/" & Cells(i, 9) & "/" & Cells(i, 10) & "/" & Cells(i, 11) & "/" & Cells(i, 12) & "/" & Cells(i, 13) & "/" & Cells(i, 14) & "/" & Cells(i, 15) & "/" & Cells(i, 16) & "/" & Cells(i, 17) & "/" & Cells(i, 18) & "/"
If tempStr2 Like tempStr1 Then
On Error Resume Next
objMyDic.Add Cells(i, IntC).Value, 0
If Err.Number = 0 And IntC = 1 Then
Cont99.AddItem Cells(i, 1)
Cont99.List(row_, 1) = Cells(i, 2)
Cont99.List(row_, 2) = Cells(i, 3)
Cont99.List(row_, 3) = Cells(i, 4)
Cont99.List(row_, 4) = Cells(i, 5)
Cont99.List(row_, 5) = Cells(i, 6)
Cont99.List(row_, 6) = Cells(i, 7)
Cont99.List(row_, 7) = Cells(i, 8)
Cont99.List(row_, 8) = Cells(i, 9)
Cont99.List(row_, 9) = Cells(i, 10)
Cont99.List(row_, 10) = Cells(i, 11)
Cont99.List(row_, 11) = Cells(i, 12)
Cont99.List(row_, 12) = Cells(i, 13)
Cont99.List(row_, 13) = Cells(i, 14)
Cont99.List(row_, 14) = Cells(i, 15)
Cont99.List(row_, 15) = Cells(i, 16)
Cont99.List(row_, 16) = Cells(i, 17)
Cont99.List(row_, 17) = Cells(i, 18)
row_ = row_ + 1
End If
On Error GoTo 0
End If
Next
Controls("Cont" & IntC).List = objMyDic.keys
objMyDic.RemoveAll
Next
End If
Set objMyDic = Nothing
chk = False
End Sub
Die einzelnen Comboboxen werden mit dem alten code angesprochen:
Beispiel:
Private Sub Cont1_Change()
If chk = False Then
chk = True
Call checkit
End If
End Sub
"Alles Anzeigen"-Button
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 18
Controls("Cont" & i).Value = ""
Next
End Sub

Und CoulumnCount für die LB habe ich auch schon auf 18 gesetzt daran liegt es also auch nicht.
Wäre super wenn ihr mir einen Tipp geben könntet.
Gruß
Dennis

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur halbe Daten bei Listbox-Darstellung
03.11.2016 12:15:40
EtoPHG
Hallo Dennis,
Listbox-Controls sind auf max. 10 Spalten beschränkt. Such mal in der Recherche!
Gruess Hansueli
AW: nur halbe Daten bei Listbox-Darstellung
03.11.2016 12:29:57
Dennis
Hi,
OK... Habs gefunden. Habe nun aber auch gesehen, dass ich mit RowSource wesentlich mehr. Wie müsste ich denn meinen Code umschreiben, damit er alle 18 Zeilen einfügt.
Gruß
Dennis
AW: nur halbe Daten bei Listbox-Darstellung
03.11.2016 12:43:20
Rudi
Hallo,
mit Rowsource kommst du nicht weiter, da du einen zusammenhängenden Bereich brauchst.
Lies alle Zeilen in ein Array ein und weise das der List-Eigenschaft der LBx zu.
Gruß
Rudi
AW: nur halbe Daten bei Listbox-Darstellung
03.11.2016 13:07:46
Dennis
Hi,
sorry jetzt bin ich etwas verwirrt. Ich möchte eine Filterung in der LB über die diversen Comboboxen, wenn ich das jetzt in ein Array schreibe, kann ich aber doch nicht mehr filtern oder ?
Wie müsste der code dafür aussehen ?
Gruß
Dennis
Anzeige
AW: nur halbe Daten bei Listbox-Darstellung
03.11.2016 13:14:19
Rudi
Hallo,
ich verstehe deinen Code nicht
wozu

For intC = 1 to 17
, wenn der LBx nur Daten hinzugefügt werden, wenn intC=1 ist?
Und wo sollte hier ein Fehler auftraten?
          On Error Resume Next
objMyDic.Add Cells(i, IntC).Value, 0
If Err.Number = 0 And IntC = 1 Then
Gruß
Rudi
AW: nur halbe Daten bei Listbox-Darstellung
03.11.2016 13:27:59
Dennis
Hallo,
ehrlich gesagt weiß ich es auch nicht so genau. Wie schon im ursprünglichen Thread geschrieben habe ich den code aus einer Datei von hier aus 2011 den habe ich nur für mich umgeschrieben. also aus den 4 zu betrachtenden Zeilen habe ich 17 gemacht, und die einzelnen "Rows" hinzugefügt.
Gruß
Anzeige
AW: nur halbe Daten bei Listbox-Darstellung
03.11.2016 14:29:36
Dennis
Hi,
wie kann ich das denn in ein Array schreiben ?
Ich kenne / kann bisher nur ein Array aus einer Tabelle schreiben aber ich muss ja dann wahrscheinlich den code-teil mit:
Cont99.AddItem Cells(i, 1)
Cont99.List(row_, 1) = Cells(i, 2)
Cont99.List(row_, 2) = Cells(i, 3)
Cont99.List(row_, 3) = Cells(i, 4)
Cont99.List(row_, 4) = Cells(i, 18)
Cont99.List(row_, 5) = Cells(i, 11)
Cont99.List(row_, 6) = Cells(i, 12)
Cont99.List(row_, 7) = Cells(i, 13)
Cont99.List(row_, 8) = Cells(i, 14)
Cont99.List(row_, 9) = Cells(i, 15)
row_ = row_ + 1
ersetzen damit er das nicht in die LB schreibt sondern in das Array oder ?
Gruß
Dennis
Anzeige
weiter nur mit Bsp-Datei. owT
03.11.2016 15:11:13
Rudi
AW: weiter nur mit Bsp-Datei. owT
04.11.2016 07:51:20
Dennis
Zur Erklärung, habe da gestern noch ein bisschen drin "rumgespielt" also ist da nun auch noch einiges an "Schrott" mit im dem code. Hatte ich leider vergessen wieder zu löschen...
AW: weiter nur mit Bsp-Datei. owT
04.11.2016 07:51:26
Dennis
Zur Erklärung, habe da gestern noch ein bisschen drin "rumgespielt" also ist da nun auch noch einiges an "Schrott" mit im dem code. Hatte ich leider vergessen wieder zu löschen...
AW: weiter nur mit Bsp-Datei. owT
04.11.2016 13:34:33
Dennis
Hab ich soviel Mit gemacht ?
AW: weiter nur mit Bsp-Datei. owT
06.11.2016 18:42:34
fcs
Hallo Dennis,
ich hab den Code des Userform1 in deiner Datei mal umgestrickt/optimiert.
Dazu werden alle Daten aus dem Blatt zu Beginn in ein Datenarray geladen.
Dadurch lässt sich Aktualisierung des Userforms stark beschleunigen, da keine Zugriffe auf die Zellen im Tabellenblatt mehr erforderlich sind.
In der von dir angelegten Schleife werden die Treffer in einem Array gesammelt.
Dieses Array muss dann noch transformiert werden bevor die Daten der List der Listbox zugewiesen werden können.
Den Code zum Speichern der Inventurdaten musst du nochmals prüfen.
Nach meinem Verständnis müssen die Eingabedaten auch in das Tabellenblatt "Grunddaten" geschrieben werden.
Gruß
Franz
Textdatei mit Code des Userform1:
https://www.herber.de/bbs/user/109231.txt
Anzeige
AW: weiter nur mit Bsp-Datei. owT
07.11.2016 11:09:24
Dennis
WOW ! Echt Hammer...
Danke schön klappt super...
Ich hatte das zwischenzeitlich mit VLOOK versucht und die Daten nicht aus der LB zu ziehen sondern durch den Schlüssel aus den Grunddaten, aber dann funktionierte das mit dem Rückschreiben nicht. Das
das was du da gebastelt hat ist genauso wie ich es gesucht habe.
Riesigen Dank dafür.
Gruß
Dennis
Gelöst, dann also zu! owT
07.11.2016 13:21:23
Michael
(nimmt Beitrag aus den offenen Beiträgen!)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige