Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1876to1880
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

0 aus Listbox entfernen

0 aus Listbox entfernen
06.04.2022 19:12:02
Henry
Hallo liebes Forum,
ich habe eine Listbox in einer Userform, die bestimmte Einträge hat.
Alle funktioniert soweit gut.
Das einzige was mich stört ist, dass in der Listbox zum Teil "Nullen (0)" angezeigt werden.
Gibt es eine Möglichkeit, alle Nullen (0) in einer Listbox zu entfernen?
Über eure Hilfe würde ich mich freuen.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 0 aus Listbox entfernen
06.04.2022 19:26:46
Oberschlumpf
Jo Henry ,
die Möglichkeit gibt es!
Einfach beim "Befüllen" einer ListBox z Bsp mit

If WERT  0 Then
Listbox.AddItem Wert
End If
Aber bei VBA gut solltest du so was eigtl wissen, denk ich...
Woher kommen denn die Inhalte für die Listbox und wie fügst du die Inhalte der Listbox hinzu?
Um zu viele Frage-Antworten-Szenarien zu vermeiden, zeig doch mal ne Bsp-Datei mit Bsp-Daten mit Code per Upload.
Ciao
Thorsten
AW: 0 aus Listbox entfernen
06.04.2022 19:46:15
Henry
Vielen Dank für deine Nachricht.
Du hast Recht eigentlich sollte ich das wissen.
Dennoch komme ich nicht weiter.
Die Daten hole ich aus einer Tabelle.
Mein Code sieht wie folgt aus:

Private Sub opt_Test_Click()
Dim iCount As Integer
Dim Lrow As Long, Arr
Dim i, X As Integer
Dim MYList As Variant
With ThisWorkbook.Sheets("Test")
Lrow = .Cells(.Rows.Count, "G").End(xlUp).Row
Arr = .Range("G4:H" & Lrow)
With Me.Test
.ForeColor = RGB(0, 118, 107)
.Clear
.ColumnCount = 2
.ColumnWidths = "170;60"
.List = Arr
For i = 0 To .ListCount - 1
For X = i To .ListCount - 1
If Val(.List(X, 1)) > Val(.List(i, 1)) Then
For c = 0 To 2
MYList = .List(X, c)
.List(X, c) = .List(i, c)
.List(i, c) = MYList
Next c
End If
Next X
.List(i, 1) = Right(String(10, " ") & Format(WorksheetFunction.Round(.List(i, 1), -3) / 1000, "#,###0"), 10)
Next i
End With
End With
End Sub

Anzeige
AW: 0 aus Listbox entfernen
06.04.2022 20:31:31
Oberschlumpf
und welchen Teil von "...Bsp-Datei...per Upload..." hast du nich verstanden? :-)
AW: 0 aus Listbox entfernen
06.04.2022 20:47:19
Henry
Es handelt sich um sensible Daten.
Ich stelle diese Datei nicht ein.
Es muss nicht genau "die" Datei sein...
06.04.2022 21:48:03
Yal
Hallo Henry,
es reicht, wenn Du eine Datei mit den Grundzüge deiner Entwicklung zusammenfasst. Ja, so viel Mühe muss sein. Wir stecken selber auch Fleiss rein.
Richtige Daten oder gar personenbezogene Daten sind natürlich nicht zu publizieren.
Mir hätte es geholfen, ein paar Daten in der Zustand, die Du hast, zu haben, um den Code zu testen.
VG
Yal
AW: 0 aus Listbox entfernen
06.04.2022 21:08:54
Yal
Hallo Henry,
das Einrücken ist für die Lesbarkeit viel wichtiger als leer Zeilen dazwischen.
Und Blöcke, die thematisch nicht dazu passen (Sortierung), kann man ruhig auslagern.
Wenn Du schon deine Eingangsdaten in einem Array zwischenlagerst, dann sortiere lieber diesen Array und dann als List-Inhalt übergeben.
Auch das Löschen der Null-Einträge kann in dem Array vorgenommen werden.
Test folgende Code (da kein Beispiel-Datei vorhanden, ist der Code ungetestet. Aber die Tipp-Fehler bekommst Du hin):

Private Sub opt_Test_Click()
Dim Lrow As Long
Dim Arr
Dim i As Long
With ThisWorkbook.Sheets("Test")
Lrow = .Cells(.Rows.Count, "G").End(xlUp).Row
Arr = .Range("G4:H" & Lrow)
End With
'Nullen rausnehmen
Arr = Zero_rausnehmen(Arr)
'Bubble-Sort
Arr = Bubblesort(Arr, 1)
'Array als List reinbringen
With Me.test
.ForeColor = RGB(0, 118, 107)
.Clear
.ColumnCount = 2
.ColumnWidths = "170;60"
.List = Arr
For i = 0 To .ListCount - 1
.List(i, 1) = Right(String(10, " ") & Format(WorksheetFunction.Round(.List(i, 1), -3) / 1000, "#,###0"), 10)
Next i
End With
End Sub
Function Zero_rausnehmen(ByVal Arr)
Dim i
Dim Erg()
ReDim Erg(1, 0)
For i = 0 To UBound(Arr, 1)
If Arr(i, 0)  0 And Arr(i, 1)  0 Then
If i > 0 Then ReDim Preserve Erg(1, UBound(Arr, 2) + 1)
Erg(0, UBound(Erg, 2)) = Arr(i, 0)
Erg(1, UBound(Erg, 2)) = Arr(i, 1)
End If
Next
Zero_rausnehmen = Application.Transpose(Erg)
End Function
Function Bubblesort(ByVal Arr, SortierSpalte As Integer)
Dim i, X, j
Dim MYList As Variant
For i = LBound(Arr, 1) To UBound(Arr, 1)
For X = LBound(Arr, 1) + 1 To UBound(Arr, 1) - 1
If Val(Arr(X, SortierSpalte)) > Val(Arr(i, SortierSpalte)) Then
For j = LBound(Arr, 2) To UBound(Arr, 2)
MYList = Arr(X, j)
Arr(X, j) = Arr(i, j)
Arr(i, j) = MYList
Next j
End If
Next X
Next i
End Function
VG
Yal
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige