Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

kopieren mit Autofilter





Frage

Ich habe mir ein Makro geschrieben das mir den Zellinhalt und deren Formatierung in ein anderes Tabellenblatt kopiert. allerdings habe ich das Problem, dass wenn beim Tabellenblatt aus dem ich kopiere der Autofilter aktiv ist funktioniert mir das makro nicht. ich müsste dazu vileicht den Autofilter vor dem kiopiern durch ein makro beenden und nach dem kopiern wieder einchalten. kann man das durch ein makro lösen? Hier ist mein aktuelles Makro. Private Sub Worksheet_Activate() Worksheets("Wartungsangebot2").Range("A1:D195").Copy Worksheets("Wartungsbuch").Range("A1:D195").PasteSpecial Paste:=xlPasteValues Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End Sub Würde mich über jede Hilfe freuen. MFG Prack

Antwort 1 von coros

Hallo Prack,

mit nachfolgender Änderung sollte das was Du Dir vorstellst funktionieren.

Option Explicit

Private Sub Worksheet_Activate()
If ActiveSheet.AutoFilterMode = True Then Range("A1:D195").AutoFilter
Worksheets("Wartungsangebot2").Range("A1:D195").Copy
Worksheets("Wartungsbuch").Range("A1:D195").PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
If ActiveSheet.AutoFilterMode = False Then Range("A1:D195").AutoFilter
End Sub



MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von prack

Danke für die Antwort, sie hat mir sehr weitergeholfen.
Aber eien weitere Frage hätte ich,
Wäre es möglich zu ermitteln welche spalte gefilter wurde und mit welchem wert, damit ich nach dem kopieren diese werte wieder so einstellen kann wie sie vor dem kopieren waren.

MFG Prack

Antwort 3 von coros

Hallo Prack,

nachfolgender Code sollte das machen, was Du Dir vorgestellt hast. Tausche´ihn gegen den alten aus.

Option Explicit

Private Sub Worksheet_Activate()
Dim iFilterCol As Integer
Dim iFilterWert As Variant
Application.ScreenUpdating = False
If ActiveSheet.AutoFilterMode = True Then
    For iFilterCol = 1 To ActiveSheet.AutoFilter.Filters.Count
        If ActiveSheet.AutoFilter.Filters(iFilterCol).On Then
            iFilterWert = Mid(ActiveSheet.AutoFilter.Filters(iFilterCol).Criteria1, _
                                2, Len(ActiveSheet.AutoFilter.Filters(iFilterCol).Criteria1))
            Exit For
        End If
    Next
    Range("A1:D195").AutoFilter
End If
Worksheets("Wartungsangebot2").Range("A1:D195").Copy
Worksheets("Wartungsbuch").Range("A1:D195").PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
If ActiveSheet.AutoFilterMode = False And iFilterWert <> "" Then
Range("A1:D195").AutoFilter Field:=iFilterCol, Criteria1:=iFilterWert
Else
Range("A1:D195").AutoFilter
End If
End Sub



MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von prack

Danke coros für die schnelle an Lösung, sie hat mien Problem gelöst.
DANKE

MFG Prack

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: