AW: Tabelle auf weiteres Blatt filtern
04.07.2021 10:12:52
Werner
Hallo,
versuch mal:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strDatum As String, ws As Worksheet, boVorhanden As Boolean
Application.ScreenUpdating = False
If Target.Count = 1 Then
If Target.Row > 2 Then
If Not Intersect(Range("A:H"), Target) Is Nothing Then
If WorksheetFunction.CountBlank(Range(Cells(Target.Row, "A"), _
Cells(Target.Row, "H"))) = 0 Then
strDatum = Cells(Target.Row, "A")
For Each ws In ThisWorkbook.Worksheets
If ws.Name = strDatum Then
Range("A2").AutoFilter Field:=1, Criteria1:=strDatum, Operator:=xlAnd
With Worksheets(strDatum)
.Range("I5:O24").ClearContents
With AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1).Columns("B:H").Copy
End With
.Range("I5").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
Range("A2").AutoFilter
End With
boVorhanden = True
Exit For
End If
Next ws
If Not boVorhanden Then
MsgBox "Fehler: Das Blatt " & strDatum & " ist nicht vorhanden."
End If
End If
End If
End If
End If
End Sub
Das Makro gehört ins Codemodul des Tabellenblattes "Alle Daten".
Rechtsklick auf den Tabellenblattreiter - Code anzeigen - Code rechts ins Codefenster kopieren.
Das Makro startet erst dann, wenn im Blatt "Alle Daten" alle Spalten ausgefüllt wurden.
Gruß Werner