Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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 Next 5 Mal

For Next 5 Mal
17.05.2022 09:03:37
Henry
Hallo liebes Forum,
ich möchte gerne in jeder zweiten Zeile eine Berechnung durchführen, und zwar 5 Mal.
Hierzu habe ich folgenden Code:

Sub Test()
Dim var_Ganzzahl As Integer
Dim var_Zahl As Double
Dim i As Integer
ThisWorkbook.Sheets("Tabelle4").Activate
var_Ganzzahl = InputBox("Tragen Sie Bitte eine Ganzzahl ein")
Range("B2").Value = var_Ganzzahl ^ 2
Range("B2").Activate
For i = 1 To 5
i = i + 1
var_Zahl = var_Ganzzahl * ActiveCell.Offset(i - 2, 0).Value
ActiveCell.Offset(i, 0).Value = var_Zahl
Next
End Sub
Wenn ich den Code ausführe, funktioniert das Beschreiben der Zellen zwar, aber nur 3 Mal.
Das Ergebnis sieht bislang wie folgt aus, wenn ich in der Inputbox zum Beispiel eine 5 eingebe,
B2 = 25
B4 = 125
B6 = 625
B8 = 3125
Das Ergebnis sollte aber wie folgt aussehen:
B2 = 25
B4 = 125
B6 = 625
B8 = 3125
B10 = 15625
B12 = 78125
Ich verstehe nicht, warum B10 und B12 nicht auch beschrieben werden, denn ich führe die Schleife doch 5 Mal aus.
Wo ist mein Denkfehler?
Über eure Hilfe würde ich mich freuen.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For Next 5 Mal
17.05.2022 09:07:17
peterk
Hallo

For i =2 to 12 step 2
var_Zahl = var_Ganzzahl * ActiveCell.Offset(i - 2, 0).Value
ActiveCell.Offset(i, 0).Value = var_Zahl
next i
Peter
AW: For Next 5 Mal
17.05.2022 09:11:07
Henry
Hallo,
vielen Dank es klappt.
Kannst du mir bitte noch folgenden Codeteil erklären: For i =2 to 12 step 2
AW: For Next 5 Mal
17.05.2022 09:22:43
UweD
Hallo
im ersten Durchlauf ist i=2
im Zweiten wird die 2 um den Step (=2) erhöht, Also ist i=4
im Dritten ist i= 6
so lange, bis i= 12 ist.
LG UweD
AW: For Next 5 Mal
17.05.2022 09:25:02
Henry
Danke für die Erläuterungen.
Ihr habe mir mal wieder sehr geholfen! :-)
AW: For Next 5 Mal
17.05.2022 09:44:39
Daniel
Hi
wenn du den Schleifenzähler i innerhalb der Schleife selbst veränderst, dann berücksichtigt VBA das!
die Schleife wird solange durchlaufen, bis der Schleifenzähler (i) größer ist als der Schleifenendwert. Beim Next wird dann der Schleifenzähler automatsich um 1 bzw die angegebene Schrittweite (STEP) erhöht. Aber wie gesagt, das was du selber mit i machst, wirkt sich halt zusätzlich aus.
Besser ist es, den Schleifenzähler unverändert zu lassen und ggf die veränderungen direkt zu berechnen:

For i = 1 To 5
var_Zahl = var_Ganzzahl * ActiveCell.Offset((i - 1) * 2, 0).Value
ActiveCell.Offset(i * 2, 0).Value = var_Zahl
Next
Gruß Daniel
Anzeige
AW: For Next 5 Mal
17.05.2022 10:11:45
Henry
Hallo,
auch dieser Code funktioniert einwandfrei.
Vielen Dank!
Würdest du mir bitte noch erklären wieso ich "*2" schreiben muss.
AW: For Next 5 Mal
17.05.2022 10:36:24
Daniel
naja, weil du das ja in jede 2. / zweite Zeile schreiben willst.
auch wenn man programmiert um nicht selber rechnen zu müssen, ein bisschen Kopfrechnen sollte man schon können.
ich würde das ganze so programmieren, ohne Referenz auf die Vorgängerzelle:

Sub Test()
Dim var_Ganzzahl As Long
Dim i As Integer
var_Ganzzahl = InputBox("Tragen Sie Bitte eine Ganzzahl ein")
For i = 2 To 7
ThisWorkbook.Sheets("Tabelle4").Cells((i - 2) * 2 + 2, "B") = var_Ganzzahl ^ i
Next
End Sub
zur Erläuterung: das *2 steht für den Abstand (jede zweite Zeile) und das +2 für die Startzeile, in der er erste Wert eingetragen wird.
Statt dem "B" könnte man auch 2 für die Spalte schreiben, aber ich wollte nicht noch mehr zweien mit unterschiedlicher Bedeutung reinbringen
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige