Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: solver mit schleife

solver mit schleife
24.02.2020 19:42:24
Chris
Guten Abend,
meine Schleife wird nicht akzeptiert.. wo ist der Fehler?
Der Solver soll ausgeführt werden dann ändert sich ein WErt und dann soll der Solver wieder _ ausgeführt werden bis es eine lösung gibt.

Sub schleife()
Dim i As Integer
Dim j As Integer
Dim s As Integer
Dim Zahl As Double
For s = 1 To 100 Step 1
Range("d1").Value = Range("d1").Value + 1
Range("d2").Value = Range("d2").Value + 1
If Range("d1") = 100 Then Exit Sub
i = Range("d1").Value
j = Range("d2").Value
Zahl = Range("d1").Value
[e1] = Zahl
Cells(20, 2) = Zahl
Cells(20 + j, 2) = Zahl
SolverReset
SolverOk SetCell:="$q$34", MaxMinVal:=3, ValueOf:=Range("$Q$39").Value, ByChange:="d35"
SolverAdd CellRef:="$d$35", Relation:=4, FormulaText:="Ganzzahlig"
SolverAdd CellRef:="$d$35", Relation:=3, FormulaText:=10 'min
SolverAdd CellRef:="$d$35", Relation:=1, FormulaText:=84 'max
solverSolve
If solverSolve(False) Then
Next s
End If
End Sub




		
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: solver mit schleife
24.02.2020 19:48:40
Regina
Hi,
das problem liegt hier:
 If solverSolve(False) Then
Next s
Für eine for..next-schleife muss das Next bedingungslos ausgeführt werden.
Versuch mal so: (ungetestet)

s=1
Do Until solverSolve = True or s > 100
Range("d1").Value = Range("d1").Value + 1
Range("d2").Value = Range("d2").Value + 1
If Range("d1") = 100 Then Exit Sub
i = Range("d1").Value
j = Range("d2").Value
Zahl = Range("d1").Value
[e1] = Zahl
Cells(20, 2) = Zahl
Cells(20 + j, 2) = Zahl
SolverReset
SolverOk SetCell:="$q$34", MaxMinVal:=3, ValueOf:=Range("$Q$39").Value, ByChange:="d35"
SolverAdd CellRef:="$d$35", Relation:=4, FormulaText:="Ganzzahlig"
SolverAdd CellRef:="$d$35", Relation:=3, FormulaText:=10 'min
SolverAdd CellRef:="$d$35", Relation:=1, FormulaText:=84 'max
solverSolve
s= s+1
Loop
gruß Regina
Anzeige
AW: solver mit schleife
25.02.2020 17:02:39
Chris
Danke das hat funkioniert!
Musst es allerdings ändern in

Do Until SolverSolve  100

AW: solver mit schleife
25.02.2020 17:25:25
Chris
Leider klappt es jetzt nicht mehr dass ich nciht bestätigen muss wenn er keine Lösung findet oder er hört nciht auf wenn er eine findet....
oh je ein problem gelöst aber leider ein anderes geschaffen.
Anzeige
AW: solver mit schleife
25.02.2020 17:35:38
Regina
... ich habe mit dem Solver wenig Erfahrung.... habe auch kein Beispiel zur Hand, um das zu Testen. Lade doch sonst mal Deine Datei hoch.
Gruß Regina
AW: solver mit schleife
25.02.2020 17:39:44
Regina
... was ich eben gefunden habe:
https://docs.microsoft.com/de-de/office/vba/excel/concepts/functions/solversolve-function
Solversolve kennt kein True oder False (wie in Deinem ersten Code, sondern eine Reihe von Rückgabewerten. Schau Dir das mal an, darin verbirgt sich vermutlich die Lösung.
ich würde die Schleife mit SolverSolve = 0 abbrechen lassen und damit testen.
Gruß Regina
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige