ich bin derzeit dabei eine Datei zu bearbeiten, in der ein Blatt verschiedenste Daten konsolidiert.
Dabei werden > 55 Bereiche verwendet, welche immer gleich Aufgebaut sind:
- Bereich N & Q jeweils 5 Zeilen, z. B. "N24:N28" oder eben "Q"
- Zwischen den einzelnen Bereichen sind 7 Zeilen Abstand
Nun gibt es noch eine Ausnahme und zwar wenn die Kostenart ändert sind es nicht 7 Zeilen Abstand, sondern 33.
Nun möchte ich die Bereiche N und Q via VBA leeren lassen. Dazu habe ich folgenden Code entwickelt - es fehlt aber noch der Sprung, wenn anstatt 7 Zeilen 33 Zeilen Abstand zwischen den Bereichen ist.
Hier der bisherige Code:
Sub deletevalues()
Dim intRow As Integer
Dim RowStep As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim counter As Integer
'Consolidation
intRow = 21
RowStep = (15 - 1)
i = intRow
j = RowStep
k = 3
counter = 4
For a = 1 To 6
If Range("B" & i) = "1010" Or Range("B" & i) = "1011" Or Range("B" & i) = "1012" Or Range(" _
_
_
B" & i) = "1013" Or Range("B" & i) = "1014" Or Range("B" & i) = "1017" Or Range("B" & i) = " _
1030" Then
Range("N" & (i + k) & ":" & "N" & ((i + k) + counter)).ClearContents
Range("Q" & (i + k) & ":" & "Q" & ((i + k) + counter)).ClearContents
End If
i = i + j
Next
End Sub
Dies funktioniert wie gesagt einwandfrei, bis der grössere Abstand kommt.
Wie kann ich in diese For-Schleifen eine weitere If-Anweisungen einfügen, welche prüft, ob "B" & i = " " ist und wenn WAHR den Zähler i mit + 33 hochsetzt?
Besten Dank im Voraus für Eure Hilfe.
Grüsse
Dan