Microsoft Excel

Herbers Excel/VBA-Archiv

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"