Eine Familie von Microsoft-Tabellenkalkulationsprogrammen mit Tools zum Analysieren, Darstellen und Vermitteln von Daten.
Hallo Community,
nun antworte ich auf mein eigenes Problem!: Ich hebe gerade herausgef unden, dass das Problem vom Zahlenformat verursacht wird!!
Wenn ich bei Excel-Optionen "Trennzeichen lt Betriebssystem" wähle (damit erscheint "," als Dezimaltrennzeichen), funktioniert alles Bestens: Durch Inspektion der SoverOptionen zeigt sich, wie die Parameter default nach 'Zurücksetzen' besetzt werden (linkes Bild).
Ich verwende aber seit einiger Zeit "." als Dezimaltrennzeichen. Damit gehen die regulären Einträge verloren. Sieht man in die Optionen rein, so findet man irreguläre Werte (rechtes Bild), die durch Handeintrag nicht mehr hergestellt werden können, da weder Punkt noch Komma als Trennzeichen akzeptiert werden (->Formatfehler in den Feldern Genauigkeit und Konvergenz).
Es sieht also so aus, das bei Arbeit mit einem Dezimalpunkt die Solveroptionen falsche Werte annehmen und Solver einen Fehler im Modell sieht, der nun bei jedem Aufruf durch Zurücksetzen beseitigt werden muss.
Kann ich denn ev. das Trennzeichen statt in den ExcelOptionen im Betriebssystem definieren (als Dezimalpunkt)?
Ich bitte um Beratung!
Gruß
HeFiLa
ich komme mit der Bitte, sich eines Problemes mit dem SOLVER anzunehmen, das ich schon länger habe. Bei Aufruf des Solver aus dem Ribbon "Daten" muss ich jetzt zwingend den Solver zurücksetzen, sonst kommt folgende Fehlermeldung:
Das hat sicher nichts mit einem Fehler in meinem Modell zu tun! Denn nach dem Zurücksetzen wird klaglos gesolved! Aber es ist extrem lästig, da die Solverparameter dabei aus der Eingabemaske gelöscht werden und man/ich danach die Aufgabestellung ständig neu eingeben muss. Dies betrifft jeden weiteren Aufruf des Solvers. Früher / normal ging der nächste Solveraufruf mit der befüllten Maske fehlerfrei.
Das Problem trat zum erstenmal auf, nachdem ich eine VBA-Routine mit SOLVER-Zugriff (schrittweise) entwickelt hatte. Diese läuft seitdem problemlos, ich gebe den Qullecode der Vollständigkeit halber unten an. Hier gibt es das reset-Problem nicht, bzw. wird in der Routine solverreset und Parameterbefüllung geregelt.
Vielleicht hat jemand eine Idee. Eine Neuinstallation von Excel7 hab ich noch nicht probiert, und, wichtig: das Problem habe ich mit .xlsm-Dateien auf meinen zweiten PC vererbt.
Noch eine ev. relevante Information: auf diesem 2ten PC erscheint im Ribbon Daten der Solvereintrag doppelt (beide funktionieren), und ich habe bislang noch nicht gefunden, wie ich diese Doppelung beseitigen kann (Neuinstallation ausgenommen).
Grüße,
HeFiLa
Sub Solve4mal()
'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dim i As Integer, j As Integer, res As Range, par As Range, par1 As Range, par_B As Range
Dim TabNamen() As Variant, ws As Worksheet, par_Laref As Range, par_AB As Range
Dim cz As String, cp As String, par_A As Range, Larefconst As Double
Dim State
Application.ScreenUpdating = True
Debug.Print "SOLVE..."
Larefconst = 62 'typischer Laref-Wert
For i = 1 To 2
For j = 1 To 2
Set res = Range("CY25").Offset((j - 1) * 28, (i - 1) * 25)
Set par = ActiveSheet.Range("CX27:CZ27").Offset((j - 1) * 28, (i - 1) * 25)
Set par_Laref = par.Range("A1")
Set par_B = par.Range("B1")
Set par_A = par.Range("C1")
par_Laref.Value = Larefconst 'Vorbesetzen mit typischem Wert
par_B.Value = par_B.Offset(2, -4).Value 'Vorbesetzen
par_A.Value = par_B.Offset(2, -3).Value 'Vorbesetzen
cz = res.Address
cp = par.Address
SolverReset
Worksheets("COLa").Activate
SolverOptions stepthru:=False
SolverOk SetCell:=cz, MaxMinVal:=2, ValueOf:="0", ByChange:=cp
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
State = SolverGet(TypeNum:=1)
If IsError(State) Then Debug.Print i, j, "not solved!"
' MsgBox "You have not used Solver on the active sheet"
Debug.Print i & " " & j & ", fit= "; Range(cz).Value
Next j
Next i
SolverReset
Set res = Nothing
Set par = Nothing
Set par_Laref = Nothing
Set par_B = Nothing
Set par_A = Nothing
Debug.Print "Solver reset"
End Sub
Hallo Community,