Hallo,
so:
Option Explicit
Sub werteuebertragen()
Dim i As Long
With Worksheets("offene_Bestellungen")
For i = 2 To .Cells(.Rows.Count, "G").End(xlUp).Row
If .Cells(i, "G") <> "" Then
With Worksheets("abg._Bestellungen")
.Cells(.Rows.Count, "A").End(xlUp).Offset(1).Resize(, 8).Value = _
Worksheets("offene_Bestellungen").Cells(i, "A").Resize(, 8).Value
End With
End If
Next i
'Zeilen Löschen
On Error Resume Next
.Range("G2:G" & .Cells(.Rows.Count, "A").End(xlUp).Row) _
.SpecialCells(xlCellTypeConstants).EntireRow.Delete
On Error GoTo 0
End With
End Sub
Wenn es tatsächlich nur um den Bereich bis Zeile 79 gehen soll und in Spalte G unterhalb von Zeile 79 noch Daten vorhanden sind, die nicht geprüft/übertragen werden sollen, dann:
statt
For i = 2 To .Cells(.Rows.Count, "G").End(xlUp).Row
so
For i = 2 to 79
Das Löschen der SpecialCells Methode geht nur, wenn im Blatt "offene_Bestellungen" in Spalte G die Daten "händisch" eingegeben werden. Sollten die Zellwerte das Ergebnis einer Formelberechnung sein, dann müsstest du wieder deine Schleife verwenden.
Gruße Werner
|