Versuchs mal damit:
Sub test()
Dim ar As Excel.Range
Dim i As Long, pos As Long
Set ar = Range("D2:N" & CStr(65200))
For i = 1 To ar.Rows.Count
Select Case ar.Cells(i, 1)
Case 0
ar.Cells(i, 7).Clear
ar.Cells(i, 11).Clear
Case 1
ar.Cells(i, 8).Clear
ar.Cells(i, 10).Clear
End Select
If ar.Cells(i, 1) <> ar.Cells(i + 1, 1) Then
pos = i + 1
ar.Cells(i + 1, 4).Resize(8).EntireRow.Delete
End If
Next
Set ar = Nothing
End Sub
Zum neuen Problem: Mal mit F8 den Code schrittweise abarbeiten und (evtl. mit Überwachungsausdrücken) dir Werte für
Sheets("kalibrierung.dat").Range("B2").Value
Sheets("kalibrierung.dat").Range("B" & anzTime).Value
anzeigen lassen (normal einfach den Mauszeiger drübersetzen).
Außerdem prüfen: Ist die Blattbezeichnung richtig:
Sheets("kalibrierung.dat").Range("B2").Value
anzTime = Sheets("Kalibrierung").Range("B6").Value
einmal "Kalibrierung", einmal "kalibrierung.dat"?
Evtl. mal testhalber einen Typwandler benutzen:
.MinimumScale = CLng(Sheets("kalibrierung.dat").Range("B2").Value)
anzTime = CLng(Sheets("Kalibrierung").Range("B6").Value)
Severus
|