Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
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

Loop in Loop

Loop in Loop
30.01.2018 16:24:32
FabySan
Hallo liebe Forum-Mitglieder,
ich habe ein Problem, das ich gerne per VBA lösen möchte, welches jedoch meine bescheidenden Kenntnisse übersteigt. Es geht um folgendes: In der Spalte AH, Zeile 17:31 und 53:67, 89:103 usw. habe ich Blöcke mit Werten, dass ganze 30 mal und immer 36 Zeilen weiter gesprungen. Daneben befinden sich umgedrehte Dreiecke die ebenfalls mit Werten befüllt sind. Nun möchte ich gerne per VBA, dass Excel den obersten Wert in dem Werteblock (AH17) minus dem letzten Werten in der letzten befüllten Spalte des Dreiecks rechnet (Q17) und die Differenz dann in AH 17 einträgt.
Ein weiteres Bespiel: Für den Fall AH18 müsste dann AH18 - P18 gerechnet werden und die Differenz in AH 18 eintragen werden. Ist dies für den ganzen Block geschehen, also bis AH31 (was dann AH31 - C31 wäre) soll VBA zum nächsten Block springen, der bei AH53 startet.
Ich wollte das Ganze durch eine Schleife in der Schleife lösen, leider stürzt mein Excel beim durchführen des Subs immer ab.
Sub Calculation()
Call Set_Sheets
j = i * 36
x = 17
With PaidSheet
Do Until Cells(.Rows.Count, 34).End(xlUp).row = ""
For n = 0 To 14
Cells(x + n, 34).Value = ActiveCell.Value - Cells(x + n, x - n).Value
Next n
For i = 1 To 2
If n = 14 Then x = 17 + j
Next i
Loop
End With
End Sub
Anbei eine Testdatei die den Aufbau verdeutlichen soll. Vielen Dank schon Mal für jede Hilfe.
https://www.herber.de/bbs/user/119415.xlsx
LG

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Loop in Loop
30.01.2018 16:53:26
Daniel
Hi
ich würde da in eine Hilfsspalte (AI) eine entsprechende Formel eintragen und das Formelergebnis dann nach AH kopieren:
Sub test()
With Range("AI17:AI" & Cells(Rows.Count, "AH").End(xlUp).Row)
.FormulaR1C1 = _
"=IF(ISNUMBER(RC34),RC34-INDEX(RC3:RC32,1,COUNT(RC3:RC32)),IF(RC34="""","""",RC34))"
.Copy
Range("AH17").PasteSpecial xlPasteValues
.ClearContents
End With
End Sub
Gruß Daniel
AW: Loop in Loop
31.01.2018 10:29:26
FabySan
Hallo Daniel,
danke für die Hilfe und den guten Tipp.
LG
AW: Loop in Loop
30.01.2018 16:56:31
Rudi
Hallo,
für 30 Blöcke zu 15 Zeilen:
Sub aaaa()
Dim i As Integer, k As Integer, lRow As Long
Application.ScreenUpdating = False
For i = 0 To 29
For k = 0 To 14
lRow = i * 36 + 17 + k
Cells(lRow, 34) = Cells(lRow, 34) - Cells(lRow, 17 - k)
Next k
Next i
End Sub

Gruß
Rudi
Anzeige
AW: Loop in Loop
31.01.2018 10:28:38
FabySan
Hallo Rudi,
vielen Dank, das klappt super.
LG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige