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

Filterergebnis an anderer Stelle ausgeben

Filterergebnis an anderer Stelle ausgeben
13.06.2009 20:25:44
Bibo
Hallo liebe EXCEL-Freunde und VBA-Profis,
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filterergebnis an anderer Stelle ausgeben
14.06.2009 08:43:27
Christian
Hallo Bibo,
wenn ich das richtig verstehe, sollen die gewählten Filterkriterien nicht ausgelesen werden.
Dann folgenden Code in ein Modul:

Option Explicit
Sub KopieNachAuswertung()
With Sheets("Auswertung")
.Range("B15:D1000").Clear
Sheets("Daten").Range("A1").CurrentRegion.SpecialCells(12).Copy .Range("B15")
End With
End Sub
Sub KopieInNeueMappe()
Dim wkb As Workbook
Set wkb = Workbooks.Add
ThisWorkbook.Sheets("Daten").Range("A1").CurrentRegion.SpecialCells(12).Copy _
wkb.Worksheets(1).Range("A1")
'wkb.Worksheets(1).Name = "Auswertung" 'Tabellenname der neuen Mappe
Set wkb = Nothing
End Sub

Gruß
Christian

Anzeige
AW: Filterergebnis an anderer Stelle ausgeben
14.06.2009 16:46:06
Bibo
Hallo Christian,
entschuldige bitte, dass ich mich erst jetzt melde.
Da ich eigentlich schon kaum mehr mit weiterer Unterstützung gerechnet habe, habe ich auch erst jetzt mitgekriegt, dass Du auf meinen Hilferuf - und zwar als einziger - heute morgen geantwortet hast.
Und was soll ich sagen ... einfach genial und zwar beide Lösungsvarianten! Funktionieren beide spitzenmäßig!
Vielen lieben Dank dafür.
Deine Sub KopieInNeueMappe() habe ich um den mit dem Makrorekorder aufgezeichneten und verkürzten Code-Schnipsel "Sheets(Array("Tabelle2", "Tabelle3")).Delete" ergänzt, was soweit grundsätzlich auch klappt.
Kannst Du mir bitte noch sagen, wie ich die dann folgende Sicherheitsabfrage "Ausgewählte Blätter werden endgültig gelöscht" umgehen kann, damit alles perfekt ist?
Ich hoffe, Du wirst mir noch ein Mal helfen.
Vielen Dank und einen schönen Sonntag.
Mit freundlichem Gruß
Bibo
Anzeige
@Christian
14.06.2009 17:25:26
Bibo
Hallo Christian,
nochmals vielen Dank für Deine Unterstützung und Hilfe.
Zu dem Problem mit der Sicherheitsabfrage habe ich im Archiv als Lösung "Application.DisplayAlerts=false/true" gefunden, was auch prima funktioniert.
Mit freundlichem Gruß
Bibo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige