Beim ausführen meines Makros funktioniert die If Abfrage, die ElseIf abfrage jedoch nicht.
Wenn z.B.: Zelle (E1) den Wert: 32,392573 hat
und Zelle H1 den Wert: 32,792573 hat sollte die ElseIf Bedingung erfüllt sein.
Jedoch wird: IfRows.... einfach übersprungen
Bei der If Abfrage gibt es jedoch keine Probleme.
Vielen Dank im Voraus
PS: das *1000000 ist um Probleme mit "," und "." zu umgehen
und ich hab keine Ahnung, warum der Code zwei mal angezeigt wird
'Counter festlegen
Dim LC1 As Long
LC1 = 1
'Collection zum sammeln der zu löschenden Element anlegen
Dim RowsToDelete As Range
'Letzte Zeile ermitteln
Dim LastRow As Long
LastRow = getLastRow("DXFOutline")
'Spalten durchlaufen
For LC1 = 1 To LastRow
'Überprüfen ob Zahlen in beiden Zellen sind
If IsNumeric(Cells(LC1, 5).value) And IsNumeric(Cells(LC1, 8).value) Then
'Zeilen löschen, wenn Radius des Kreises = 0.4
If Abs(Cells(LC1, 5).value * 1000000 - Cells(LC1, 8).value * 1000000) = 0.4 * 1000000 Then
If RowsToDelete Is Nothing Then
Set RowsToDelete = Rows(LC1).Resize(2) ' Aktuelle Zeile und die nächste Zeile
Else
Set RowsToDelete = Union(RowsToDelete, Rows(LC1).Resize(2))
End If
'Zeilen löschen, wenn Radius des Kreises = -0.4
ElseIf Abs(Cells(LC1, 8).value * 1000000 - Cells(LC1, 5).value * 1000000) = 0.4 * 1000000 Then
If RowsToDelete Is Nothing Then
Set RowsToDelete = Rows(LC1).Resize(2) ' Aktuelle Zeile und die nächste Zeile
Else
Set RowsToDelete = Union(RowsToDelete, Rows(LC1).Resize(2))
End If
End If
End If
Next LC1
If Not RowsToDelete Is Nothing Then
RowsToDelete.Delete
End If
'Counter festlegen
Dim LC1 As Long
LC1 = 1
'Collection zum sammeln der zu löschenden Element anlegen
Dim RowsToDelete As Range
'Letzte Zeile ermitteln
Dim LastRow As Long
LastRow = getLastRow("DXFOutline")
'Spalten durchlaufen
For LC1 = 1 To LastRow
'Überprüfen ob Zahlen in beiden Zellen sind
If IsNumeric(Cells(LC1, 5).value) And IsNumeric(Cells(LC1, 8).value) Then
'Zeilen löschen, wenn Radius des Kreises = 0.4
If Abs(Cells(LC1, 5).value * 1000000 - Cells(LC1, 8).value * 1000000) = 0.4 * 1000000 Then
If RowsToDelete Is Nothing Then
Set RowsToDelete = Rows(LC1).Resize(2) ' Aktuelle Zeile und die nächste Zeile
Else
Set RowsToDelete = Union(RowsToDelete, Rows(LC1).Resize(2))
End If
'Zeilen löschen, wenn Radius des Kreises = -0.4
ElseIf Abs(Cells(LC1, 8).value * 1000000 - Cells(LC1, 5).value * 1000000) = 0.4 * 1000000 Then
If RowsToDelete Is Nothing Then
Set RowsToDelete = Rows(LC1).Resize(2) ' Aktuelle Zeile und die nächste Zeile
Else
Set RowsToDelete = Union(RowsToDelete, Rows(LC1).Resize(2))
End If
End If
End If
Next LC1
If Not RowsToDelete Is Nothing Then
RowsToDelete.Delete
End If