Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: For Schleife mit IF Bedingung

For Schleife mit IF Bedingung
12.08.2015 12:17:57
Dan
Hallo Zusammen,
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

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For Schleife mit IF Bedingung
12.08.2015 12:31:58
Herbert
Hallo Dan,
meinst Du mdamit ("welche prüft, ob "B" & i = " " ist") wirklich ein Blank, oder meinst Du evtl. das hier: ""
Servus

AW: For Schleife mit IF Bedingung
12.08.2015 13:30:52
Dan
Hallo Herbert,
danke für Deine Antwort - es sollte geprüft werden, ob die Zelle in Spalte "B" LEER/ Blank ist.
Rudi sein Code hilft mir schon sehr gut weiter.
Grüsse
Daniele

Anzeige
AW: For Schleife mit IF Bedingung
12.08.2015 12:32:27
Rudi
Hallo,
so?
  For a = 1 To 6
Select Case CInt(Cells(i, 2))
Case 1010 To 1014, 1017, 1030
Range("N" & (i + k) & ":" & "N" & ((i + k) + counter)).ClearContents
Range("Q" & (i + k) & ":" & "Q" & ((i + k) + counter)).ClearContents
End Select
i = i + j - (Cells(i + j, 2) = "") * 19
Next a

Gruß
Rudi

Anzeige
AW: For Schleife mit IF Bedingung
12.08.2015 13:29:01
Dan
Hallo Rudi,
vielen Dank, das löst mein Problem!
Könntest Du mir erklären, was genau der Ausdruck:
i = i + j - (Cells(i + j, 2) = "") * 19
macht?
Vielen Dank im Voraus.
Grüsse
Dan
____________________

Erlärung
12.08.2015 14:04:10
Rudi
Hallo,
(Cells(i + j, 2) = "") ergibt TRUE (=-1), falls die Zelle leer ist, ansonsten 0.
Ergo i = i + j --1 * 19 bzw. -0 * 19.
-- = +
Gruß
Rudi

Anzeige
AW: Erlärung
12.08.2015 14:36:18
Dan
Hallo Rudi,
TOP merci, jetzt habe ich wieder was gelernt.
Grüsse
Dan
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige