Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1440to1444
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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

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

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige