Excel: For-Schleife und If-Else VB 

  • Ersteller Ersteller E!viS
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
E

E!viS

Hi,
ich programmiere ein Makro, das die Zahlen zwischen zwei Zahlen mit Hilfe einer For-Schleife aufaddiert.
z.B.:
3 und 7 = 25

Das Ergebnis wird über eine MsgBox ausgegeben.

Code:
Sub Test()
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim a As Integer

x = InputBox("1. Zahl:")
y = InputBox("2. Zahl:")

If x < y Then
a = x
For z = x To y
a = a + 1
Next z
Else
a = y
For z = y To x
a = a + 1
Next z
End If
MsgBox (a)

End Sub

Wenn ich zwei Zahlen gibt VBA mir nur die größere der beiden Zahlen +1 aus.
Bin jetzt schon über ne halbe Stunde den Fehler am suchen.
Ich hoffe ihr könnt mir helfen.

MfG E!viS
 
Hy

Dein Fehler ist, das du zum Startwert immer nur 1 dazuzählst.
(3+1+1+1+1+1) = 8

Du willst aber die aktuelle Zahl dazuaddieren
(0+3+4+5+6+7) = 25

Das sieht dann so aus:

Code:
Sub TestNeu()
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim a As Integer

x = InputBox("1. Zahl:")
y = InputBox("2. Zahl:")

If x < y Then
For z = x To y
a = a + z
Next z
Else
For z = y To x
a = a + z
Next z
End If
MsgBox (a)

End Sub

Bsp: x=3 y=7 (z=3, 4, 5, 6, 7) ==> 5 Durchläufe

Durchlauf1: a = leer + z=3 ==> a=3
Durchlauf2: a = 3 + z=4 ==> a=7
Durchlauf3: a = 7 + z=5 ==> a=12
Durchlauf4: a = 12 + z=6 ==> a=18
Durchlauf5: a = 18 + z=7 ==> a=25

Ergebnis: a=25

Ich hoffe ich konnte helfen.

MfG Tattooed1980
 
Starke Sache!
Vielen Dank für die schnelle und gute Hilfe!

MfG E!viS
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten