ich greife meinen noch offenen Beitrag von vorgestern in der Hoffnung nochmals auf, dass heute vielleicht mehr VBA-Spezialisten unterwegs sind.
Iich habe im Archiv den nachstehenden Code gefunden, den ich mit NoNet's Hilfe in der beigefügten Beispielmappe so anpassen konnte, dass der Ausgabebereich der gefilterten Werte jetzt in Zelle B15 des Tabellenblattes "Auswertungen" beginnt.
Option Explicit
Sub FilterCriteria()
Dim intRow As Integer, intCol As Integer
intRow = Range("A1").CurrentRegion.Rows.Count + 2
intCol = 1
Do Until IsEmpty(Cells(1, intCol))
With ActiveSheet.AutoFilter.Filters(intCol)
If .On Then
Cells(intRow, intCol).Value = .Criteria1
End If
End With
intCol = intCol + 1
Loop
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Cells(intRow + 1, 1)
End Sub
Allerdings wird im Tabellenblatt "Daten" mit einer Leerzeile unterhalb des letzten Datensatzes das bzw. die Filterkriterien der Spalten A und/oder B eingetragen. Hat das mit "intRow = Range("A1").CurrentRegion.Rows.Count + 2" irgendwie zu tun? Da meine VBA-Kenntnisse ziemlich eingeschränkt sind, behelfe ich mir im Moment in der Beispielmappe mit dem Löschen des statischen Bereiches A13:C13 (Range("A13:C13").ClearContents). Mir ist schon klar, dass dies mit dem Hinzukommen neuer Datensätze so nicht mehr funktionieren kann. Wie kann man den zu löschenden Bereich variabel gestalten, besser noch natürlich den Eintrag der Filterkriterien zumindest im Tabellenblatt "Daten" unterdrücken?
Habe jetzt noch entdeckt, dass ein Export der nach Spalte C "Betrag" gefilterten Daten wegen Typenunverträglichkeit(?) nicht funktioniert (Fehler 400). Wie könnte man das denn korrigieren?
Wie könnte der Code denn angepasst werden, wenn ein Export des Filterergebnisses in eine neue Arbeitsmappe erfolgen soll?
Wenn ich die Sub-Anweisung über eine Schaltfläche im Tabellenblatt "Auswertung" aufzurufen versuche, mosert VBA, dass keine Objektvariable oder With-Blockvariable festgelegt sei. Ich kann jetzt nur vermuten, dass dies mit "intRow = Range("A1").CurrentRegion.Rows.Count + 2" zu tun haben könnte. Wie müsste denn der Code angepasst werden, damit dies möglich wird?
Ich lade die Mappe nochmals hoch und bitte Euch, mir nochmals zu helfen.
https://www.herber.de/bbs/user/62417.xls
Mit freundlichem Gruß
Bibo