Schleife mit Wenn-Formel programmieren
04.01.2007 15:08:10
proxima05
mit dem folgenden Code trage ich in die Zelle A14 und B14 jeweils eine Formel (Formula1/2) ein, was auch funktioniert.
========================================
Private Sub CommandButton1_Click()
Dim Formula1 As String
Dim Formula2 As String
Formula1 = "=IF(AND(R[-1]C<R5C2*R7C2,R[-9]C[1]<1),R[-12]C[1],IF(INT(R[-9]C[1])=R[-9]C[1],1,R[-1]C+R[-9]C[1]-(INT(R[-9]C[1]))))"
Formula2 = "=IF(RC[-1]<R5C2*R7C2,R4C2*R3C2/R7C2,IF(RC[-1]=R5C2*R7C2,R4C2*R3C2/R7C2+R3C2,""""))"
If OptionButton1.Value = True Then
Range("A14").Select
ActiveCell.FormulaR1C1 = Formula1
Range("B14").Select
ActiveCell.FormulaR1C1 = Formula2
End If
End Sub
========================================
Jetzt möchte ab A15 eine Formel einfügen, die in der Bearbeitungszeile wie folgt aussieht:
=WENN(A14 (Den VBA-Code habe ich bereits für die Formel)
Diese soll in den darunterliegenden Zellen (A16, A17 ...) eingetragen werden, solange "B5*B7" kleiner als die jeweils darüber liegende Zelle (also für A16 die Zelle A15, für Zelle A17 die Zelle A16 und so weiter ...). Das Eintragen der Formel soll solange laufen, bis der Wert in der jeweilen Zelle A gleich dem Wert B5*B7 ist.
Ich wollte das über eine "Do ... Until"-Schleife realisieren, was aber nicht ganz funktioniert:
==================
Range("A15").Select
i = 1
Do Until ActiveCell.Value = B5 * B7
For i = 1 To zz
ActiveCell.Offset(1, 0).Select
Next i
Selection.ActiveCell.FormulaR1C1 = Formula3
i = 1
Loop
==================
Kann mir jemand sagen, was ich da falsch mache.
Besten Dank für Hilfe,
Gruß
Ralph