Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
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
Nur sichtbare Zeilen zählen
28.05.2020 11:22:37
Markus
Hallo zusammen,
ich habe eine Listbox1 mit multiselect, deren Einträge aus Sheet2 generiert werden. Listbox1 wird mithilfe ComboBox1 gefiltert. Dazu habe ich ein Textfeld, die ComboBox2, das die Werte auf Sheet2 für die gewählten Einträge übertragen soll.
Beim Speichervorgang funktioniert das Übertragen der Auswahl leider noch nicht. Ich filtere die _ Liste in Sheet2 über den Filter aus ComboBox1, mit dem ich auch die Listbox1 filtere. Bei der For Schleife werden alle gefilterten Einträge aus der Listbox gezählt. Das Übertragen in Sheet2 klappt jedoch noch nicht, da hier noch die nicht sichtbaren Zeilen mitgezählt werden und somit das i aus Listbox1 mit dem des Sheet2 nicht übereinstimmt. Ohne Filter funktioniert der Befehl, da das i der Listbox1 gleich gezählt wird wie die Einträge aus Sheet2.

Private Sub Ensave() 'Speichervorgang = Übertragen aller Eingaben in die Excel-Datei
Dim lZeile As Long
Dim FirstIndexNo As Integer
Dim i As Long
'Filtern der Liste nach Combobox1
If Combobox1  "" Then
Dim Liste As Range
Set Liste = Sheet2.Range("A4:Z500")
Liste.AutoFilter
Liste.AutoFilter Field:=21, Criteria1:=Combobox1.Text
End If
For i = 0 To Listbox1.ListCount - 1
If Listbox1.Selected(i) Then
Sheet2.Cells(i + 5, 12) = ComboBox2.Text           'Hier liegt glaube ich der  _
Fehler, weil mit i auch gefilterte Zeilen gezählt werden
Sheet2.Cells(i + 5, 13) = Date
Sheet2.Cells(i + 5, 13).NumberFormat = "dd.mm.yy"
End If
Next i
Exit Sub
End Sub

Vielen Dank für eure Hilfe,
Gruß Markus

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur sichtbare Zeilen zählen
28.05.2020 12:15:10
Blanca
Hallo Markus,
ich hoffe ich verstehe es richtig.
Wenn doch Sheet2 sowieso schon richtig gefiltert ist, laufe doch einfach Sheet2 durch und setze überall dort, wo die Zeile sichtbar ist deine Einträge.
Würde dann z.B. so aussehen:
Private Sub Ensave() 'Speichervorgang = Übertragen aller Eingaben in die Excel-Datei
Dim lZeile As Long
Dim FirstIndexNo As Integer
Dim i As Long
'Filtern der Liste nach Combobox1
If Combobox1  "" Then
Dim Liste As Range
Set Liste = Sheet2.Range("A4:Z500")
Liste.AutoFilter
Liste.AutoFilter Field:=21, Criteria1:=Combobox1.Text
End If
For i = 5 to 10000 'Hier den Bereich noch genau festlegen, oder dynamisch
If Sheet2.Cells(i, 1).Value  "" Then 'Hier ggf. prüfen, ob Zeile gefüllt.
If Not Sheet2.Rows(i).Hidden Then
Sheet2.Cells(i, 12).Value = ComboBox2.Text
Sheet2.Cells(i, 13).Value = Date
Sheet2.Cells(i, 13).NumberFormat = "dd.mm.yy"
End If
End If
Next i
Exit Sub
End Sub

Gruß
Blanca von iexcelu.de
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige