Live-Forum - Die aktuellen Beiträge
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

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige