bekomme hier die Fehlermeldung Typen unverträglich.
If .Cells(Zeile, 6).Value = "Ende" And Range("D2:D1000").Value "" Then
Liegt das an dem .Cells und Range?LG,
Lia
If .Cells(Zeile, 6).Value = "Ende" And Range("D2:D1000").Value "" Then
Liegt das an dem .Cells und Range?If .Cells(Zeile, 6).Value = "Ende" And Application.CountA(Range("D2:D1000").Value) > 0 Then
If .Cells(Zeile, 6).Value = "Ende" And Application.CountA(Range("E2:E1000").Value) 0 Then
.Rows(Zeile).Delete
Else
MsgBox("Zelle E muss einen Wert haben!")
End if
Habe es eben ausprobiert und trotzdem hat er die Zeile gelöscht :/ (Das Größer Zeichen akzeptiert excel nicht deshalb habe ich es rausgenommen ^^Public Sub aaa()
Zeile = 1
If Cells(Zeile, 6).Value = "Ende" And Application.CountA(Range("E2:E1000").Value) > 0 Then
Rows(Zeile).Delete
Else
MsgBox ("Zelle E muss einen Wert haben!")
End If
End Sub
Du hast in deinem Code vor dem ersten Cells einen Punkt (.Cells(Zeile, 6). Steht der Codeteil in einer With... End With Klammer?With Tabelle1
ZeileMax = .UsedRange.Rows.Count
For Zeile = ZeileMax To 1 Step -1
If Cells(Zeile, 6).Value = "ende" And Application.CountA(Range("E2:E1000").Value) 0 Then
.Rows(Zeile).Copy Destination:=Tabelle2.Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Rows(Zeile).Delete
n = n + 1
End If
Next Zeile
End With
End Sub
Public Sub Test()
Dim ZeileMax As Long, Zeile As Long
With Tabelle1
ZeileMax = .UsedRange.Rows.Count
For Zeile = ZeileMax To 1 Step -1
If .Cells(Zeile, 6).Value = "ende" And Application.CountA(.Range("E2:E1000")) > 0 Then
.Rows(Zeile).Copy Destination:=Tabelle2.Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Rows(Zeile).Delete
End If
Next Zeile
End With
End Sub
Ich vermute aber, daß du was ganz anderes erreichen/prüfen willst. Kann es sein, dass du zunächst prüfen willst, ob in der aktuellen Zeile in Spalte F "ende" steht und ob in der gleichen Zeile in Spalte E ein Eintrag vorhanden ist? Wenn ja, dann wird das so nämlich nichts.Public Sub Test()
Dim ZeileMax As Long, Zeile As Long
With Tabelle1
ZeileMax = .UsedRange.Rows.Count
For Zeile = ZeileMax To 1 Step -1
If .Cells(Zeile, 6).Value = "ende" And .Cells(Zeile, 5) "" Then
.Rows(Zeile).Copy Destination:=Tabelle2.Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Rows(Zeile).Delete
End If
Next Zeile
End With
End Sub
Bei deinem geposteten Code fehlte jeweils ein Punkt von Cells (.Cells) und vor Range (.Range).Tabelle1.Range(Tabelle1.Cells(1, 1), .Tabelle1.Cells(1, 4))
With Tabelle1
.Range(.Cells(1, 1), .Cells(1, 4))
End With
Gruß Werner.Rows(Zeile).Copy
Tabelle2.Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
Tabelle2.Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteFormats