In meiner Tabelle1 habe ich mehrere Spalten.
Alle Inhalte die in Spalte G und Spalte H gleich sind sollen in eine neue Tabelle kopiert werden. Ist sowas leicht möglich?
Danke für die Hilfe.
Liebe Grüsse
Thomas
Option Explicit
Sub kopieren()
Dim rngU As Range
Dim wks As Worksheet, neu As Worksheet
Dim lastRow As Long, lRow As Long
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
End With
Set wks = Sheets("Tabelle1")
lastRow = IIf(wks.Range("G65536") <> "", 65536, wks.Range("G65536").End(xlUp).Row)
Set neu = Worksheets.Add(after:=wks)
neu.Name = "Neu"
For lRow = 1 To lastRow
If wks.Cells(lRow, 7) = wks.Cells(lRow, 8) Then
If Not rngU Is Nothing Then
Set rngU = Union(rngU, wks.Rows(lRow))
Else
Set rngU = wks.Rows(lRow)
End If
End If
Next
rngU.Copy neu.Range("A1")
ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Option Explicit
Sub kopieren()
Dim rngU As Range
Dim wks As Worksheet, neu As Worksheet
Dim lastRow As Long, lRow As Long
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
End With
Set wks = Sheets("Tabelle1")
lastRow = IIf(wks.Range("G65536") <> "", 65536, wks.Range("G65536").End(xlUp).Row)
Set neu = Worksheets.Add(after:=wks)
neu.Name = "Neu"
For lRow = 1 To lastRow
If wks.Cells(lRow, 7) = wks.Cells(lRow, 8) Then
If Not rngU Is Nothing Then
Set rngU = Union(rngU, wks.Rows(lRow))
Else
Set rngU = wks.Rows(lRow)
End If
End If
Next
rngU.Copy neu.Range("A1")
ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
End With
End Sub
P.S.: Rückmeldung nicht vergessen!