AW: Zeile ausschneiden und in neuem Arbeitsblatt einfügen
29.05.2024 15:34:19
daniel
Hi
ich fände es etwas verwirrend, wenn die Zeilen sofort beim eingeben des Wertes verschwinden.
der folgende Code kommst ins Modul "Diese Arbeitsmappe" und führt die Änderungen erst aus, wenn du das Tabellenblatt wechselst
Da ich keine Blattnamen verwende sondern die Indizes 1 und 2, wird der Code immer auf die ersten beiden Blätter angewendet (egal wie sie heißen) und die Reihenfolge sollte auch nicht getauscht werden:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
With Sheets(1).Cells(1, 1).CurrentRegion.Columns(6)
If WorksheetFunction.CountIf(.Cells, "x") > 0 Then
.Replace "x", True, 1
With .SpecialCells(xlCellTypeConstants, 4)
.Value = "x"
.EntireRow.Copy Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
.EntireRow.Delete
End With
End If
End With
With Sheets(2).Cells(1, 1).CurrentRegion.Columns(6)
If WorksheetFunction.CountBlank(.Cells) > 0 Then
With .SpecialCells(xlCellTypeBlanks)
.EntireRow.Copy Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
.EntireRow.Delete
End With
Sheets(1).UsedRange.Sort key1:=Sheets(1).Cells(1, 2), order1:=xlAscending, Header:=xlYes
End If
End With
End Sub
Gruß Daniel