Listenbox und if-Funktion

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Listenbox und if-Funktion
von: Matthias
Geschrieben am: 20.10.2015 14:28:41

Hallo
nachfolgend mein Code.

Private Sub UserForm_Initialize()
Dim iRow As Integer
ListBox1.ColumnCount = 4
ListBox1.ColumnWidths = "0,6cm; 2cm; 3,5cm; 3cm"
For iRow = 2 To Range("B65536").End(xlUp).Row
ListBox1.AddItem Cells(iRow, 1)
ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(iRow, 2)
ListBox1.List(ListBox1.ListCount - 1, 2) = Cells(iRow, 3)
ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(iRow, 4)
ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(iRow, 5)
Next
End Sub

Ich möchte aber, dass nur Datensätze aufgeführt werden, wenn in Spalte F der laufenden Zeile oder in Spalte H der laufenden Zeile der Wert kleiner als ein anderer Wert ist.
Bsp.
E3< G3 oder F3

Mir bringt der immer ein Problem mit der Next-Schleife :(

Bild

Betrifft: AW: Listenbox und if-Funktion
von: Rudi Maintaire
Geschrieben am: 20.10.2015 14:37:01
Hallo,

Private Sub UserForm_Initialize()
  Dim iRow As Integer
  ListBox1.ColumnCount = 4
  ListBox1.ColumnWidths = "0,6cm; 2cm; 3,5cm; 3cm"
  For iRow = 2 To Range("B65536").End(xlUp).Row
    If Cells(iRow, 5) < Cells(iRow, 6) Or Cells(iRow, 5) < Cells(iRow, 7) Then
      ListBox1.AddItem Cells(iRow, 1)
      ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(iRow, 2)
      ListBox1.List(ListBox1.ListCount - 1, 2) = Cells(iRow, 3)
      ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(iRow, 4)
      ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(iRow, 5)
    End If
  Next
End Sub

Gruß
Rudi

Bild

Betrifft: AW: Listenbox und if-Funktion
von: matthias
Geschrieben am: 20.10.2015 15:35:23
Super Danke.
Funktioniert sehr gut.
Mit ist nur aufgefallen, des es im Gesamtzusammenhang meiner Datei etwas umständlich ist.
Deshalb habe ich es jetzt so gelöst.

Private Sub CommandButton12_Click()
Dim iRow As Integer
Dim wks As Worksheet
Set wks = ActiveWorkbook.Worksheets("Jahresüberblick")
Dim Meldungstext As String
For iRow = 6 To Range("B65536").End(xlUp).Row
If wks.Cells(iRow, 7) < wks.Cells(iRow, 6) Or wks.Cells(iRow, 10) < wks.Cells(iRow, 9) Then
Meldungstext = Meldungstext & vbLf & iRow & " - " & wks.Cells(iRow, 2).Value & " " & wks.Cells( _
iRow, 3).Value
End If
 If Meldungstext = "" Then
    msgbox "Alle Dateien versendet"
Else
    msgbox "Folgende Dateien konnten nicht gefunden werden : " & Meldungstext
End If
Next
End Sub
Jedoch macht er mir jetzt augenscheinlich so viele Meldungen nacheinander auf, wie ich Datensätze insgesamt habe.
Eigentlich wollte ich nur zum Schluss eine Meldung in der dann die problematischen Datensätze stehen.
Irgendwie passt es nicht ganz.

Bild

Betrifft: Next vor If Meldungstext ="" owT
von: Rudi Maintaire
Geschrieben am: 20.10.2015 15:55:15


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datensortieren und anordnen"