Makro Schleife
Betrifft: Makro Schleife
von: Matthias
Geschrieben am: 08.09.2004 13:49:55
Hallo, ich habe mal ne Frage. Ich versuche ein Makro zu schreiben, daß einen Wert verändert, den Solver betätigt, und das Ergebnis an eine bestimmte Stelle im Sheet einträgt. Der Wert wird nun wieder geändert, der Solver ausgeführt, das Ergebnis soll aber nun nicht in d34 eingetragen werden sondern in d36, dann in d38 usw. Ich hoffe jemand von Euch hat dafür eine Lösung.
So schaut es bis jetzt aus, und es funktioniert auch soweit. Nur für die Sache mit dem Ergebnis eintragen habe ich keine Lösung.
Sub Makro6()
'
' Makro6 Makro
' Makro am 08.09.2004 von _ aufgezeichnet
'
'
Dim x As Single
x = -0.3
Do While x < 0.8
Range("B2").Select
ActiveCell.FormulaR1C1 = x
Range("B3").Select
SolverOk SetCell:="$B$29", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$16:$B$25"
SolverSolve userfinish:=True
SolverOk SetCell:="$B$29", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$16:$B$25"
SolverSolve userfinish:=True
SolverOk SetCell:="$B$29", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$16:$B$25"
SolverSolve userfinish:=True
SolverOk SetCell:="$B$29", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$16:$B$25"
SolverSolve userfinish:=True
ActiveWindow.SmallScroll Down:=12
Range("C29:C30").Select
Selection.Copy
Range("d34").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=-24
x = x + 0.02
Loop
End Sub
Betrifft: AW: Makro Schleife
von: Dr.
Geschrieben am: 08.09.2004 13:51:25
Du lässt ja schon ein Laufvariable (x) mitrennen. Benutze doch dafür auch eine, die entsprechend um 2 hochgezählt wird.
Betrifft: AW: Makro Schleife
von: Matthias
Geschrieben am: 08.09.2004 13:54:04
Habe ich schon probiert, aber ich weiß nicht wie ich erreichen kann, daß das Ergebnis bei jedem Durchlauf eine andere Zelle geschrieben wird.
Betrifft: AW: Makro Schleife
von: Dr.
Geschrieben am: 08.09.2004 13:58:39
Sei L die Laufvariable und zunächst auf Wert 34 gesetzt, dann schreibst Du
statt Range("d34").Select
Selection.Copy Destination:=ActiveSheet.Cells(L, 4)
und zählst danach L um zwei hoch.
Betrifft: AW: Makro Schleife
von: Matthias
Geschrieben am: 08.09.2004 14:11:17
Jetzt sieht das ganze so aus. Jetzt funktioniert der Ergebniseintrag, aber der Befehl für das "Nur Werte einfügen" geht nicht mehr.
Sub Makro6()
'
' Makro6 Makro
' Makro am 08.09.2004 von _ aufgezeichnet
'
'
Dim x As Single
x = -0.3
Dim L As Integer
L = 34
Do While x < 0.8
Range("B2").Select
ActiveCell.FormulaR1C1 = x
Range("B3").Select
SolverOk SetCell:="$B$29", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$16:$B$25"
SolverSolve userfinish:=True
SolverOk SetCell:="$B$29", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$16:$B$25"
SolverSolve userfinish:=True
SolverOk SetCell:="$B$29", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$16:$B$25"
SolverSolve userfinish:=True
SolverOk SetCell:="$B$29", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$16:$B$25"
SolverSolve userfinish:=True
ActiveWindow.SmallScroll Down:=12
Range("C29:C30").Select
Selection.Copy Destination:=ActiveSheet.Cells(L, 4)
==>Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=-24
L = L + 2
x = x + 0.02
Loop
End Sub
Betrifft: AW: Makro Schleife
von: Dr.
Geschrieben am: 08.09.2004 14:25:15
Dann schreibste folgendes:
Range("C29:C30").Copy
Cells(L, 4).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Betrifft: AW: Makro Schleife
von: Matthias
Geschrieben am: 08.09.2004 14:37:11
Funktioniert!
Vielen Dank!
Beiträge aus den Excel-Beispielen zum Thema "Makro Schleife"