Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Solver im VBA, "Ein unerwarteter interner Fehler"

Solver im VBA, "Ein unerwarteter interner Fehler"
Verena
Hallo ihr Lieben VBA-Gurus!!!
Ich habe ein Solver Problem und hoffe ihr könnt mir weiter helfen. Dazu folgender VBA Code:
SolverOk SetCell:=Cells(SetCellZeile, SetCellSpalte), MaxMinVal:=1, ValueOf:="0", ByChange:= _
"" & Cell1 & "," & Cell2 & "," & Cell3 & "," & Cell4 & "," & Cell5 & "," & Cell6 & "," & Cell7 & "," & Cell8 & "," & Cell9 & "," & Cell10 & "," & Cell11 & "," & Cell12 & "," & Cell13 & "," & Cell14 & "," & Cell15 & "," & Cell16 & "," & Cell17 & "," & Cell18 & "," & Cell19 & "," & Cell20 & "," & Cell21 & "," & Cell22 & "," & Cell23 & "," & Cell24 & "," & Cell25 & "," & Cell26 & "," & Cell27 & "," & Cell28 & "," & Cell29 & "," & Cell30 & "," & Cell31 & "," & Cell32 & "," & Cell33 & "," & Cell34 & "," & Cell35 & "," & Cell36 & "," & Cell37 & "," & Cell38 & ""
SolverAdd CellRef:=CellRef1, Relation:=2, FormulaText:=GESAMT1
SolverAdd CellRef:=CellRef2, Relation:=2, FormulaText:=GESAMT2
SolverAdd CellRef:=CellRef3, Relation:=2, FormulaText:=GESAMT3
SolverAdd CellRef:=CellRef4, Relation:=2, FormulaText:=GESAMT6
SolverAdd CellRef:=CellRef5, Relation:=2, FormulaText:=GESAMT4
SolverAdd CellRef:=CellRef6, Relation:=2, FormulaText:=GESAMT7
SolverAdd CellRef:=CellRef7, Relation:=2, FormulaText:=GESAMT5
SolverAdd CellRef:=CellRef8, Relation:=2, FormulaText:=GESAMT8
SolverAdd CellRef:=CellRef9, Relation:=2, FormulaText:=GESAMT9
SolverAdd CellRef:=CellRef10, Relation:=2, FormulaText:=GESAMT10
SolverAdd CellRef:=CellRef11, Relation:=2, FormulaText:=GESAMT11
SolverAdd CellRef:=CellRef12, Relation:=2, FormulaText:=GESAMT12
SolverAdd CellRef:=CellRef13, Relation:=2, FormulaText:=GESAMT13
SolverAdd CellRef:=CellRef14, Relation:=2, FormulaText:=GESAMT14
SolverAdd CellRef:=CellRef15, Relation:=2, FormulaText:=GESAMT15
SolverAdd CellRef:=CellRef16, Relation:=2, FormulaText:=GESAMT16
SolverAdd CellRef:=CellRef17, Relation:=2, FormulaText:=GESAMT17
SolverAdd CellRef:=CellRef18, Relation:=2, FormulaText:=GESAMT18
SolverAdd CellRef:=CellRef19, Relation:=2, FormulaText:=GESAMT19
SolverAdd CellRef:=CellRef20, Relation:=2, FormulaText:=GESAMT20
SolverAdd CellRef:=CellRef21, Relation:=2, FormulaText:=GESAMT21
SolverAdd CellRef:=CellRef22, Relation:=2, FormulaText:=GESAMT22
SolverAdd CellRef:=CellRef23, Relation:=2, FormulaText:=GESAMT23
SolverAdd CellRef:=CellRef24, Relation:=2, FormulaText:=GESAMT24
SolverAdd CellRef:=CellRef25, Relation:=2, FormulaText:=GESAMT25
SolverAdd CellRef:=CellRef26, Relation:=2, FormulaText:=GESAMT26
SolverAdd CellRef:=CellRef27, Relation:=2, FormulaText:=GESAMT27
SolverAdd CellRef:=CellRef28, Relation:=2, FormulaText:=GESAMT28
SolverAdd CellRef:=CellRef29, Relation:=2, FormulaText:=GESAMT29
SolverAdd CellRef:=CellRef30, Relation:=2, FormulaText:=GESAMT30
SolverAdd CellRef:=CellRef31, Relation:=2, FormulaText:=GESAMT31
SolverAdd CellRef:=CellRef32, Relation:=2, FormulaText:=GESAMT32
SolverAdd CellRef:=CellRef33, Relation:=2, FormulaText:=GESAMT33
SolverAdd CellRef:=CellRef34, Relation:=2, FormulaText:=GESAMT34
SolverAdd CellRef:=CellRef35, Relation:=2, FormulaText:=GESAMT35
SolverAdd CellRef:=CellRef36, Relation:=2, FormulaText:=GESAMT36
SolverAdd CellRef:=CellRef37, Relation:=2, FormulaText:=GESAMT37
SolverAdd CellRef:=CellRef38, Relation:=2, FormulaText:=GESAMT38
SolverSolve UserFinish:=True
Habe vorher im EXCEL 2007 gearbeitet, wo es prima funktioniert hat. Beim Versuch das Programm im EXCEL 2003 kommt dann nur folgende Fehlermeldung:
Solver: Ein unerwarteter interner Fehler ist aufgetreten
Verweise für Solver ist aktiviert. Mhhh... bin am Ende meiner kümmerlichen VBA Kenntnisse angelangt. Obwohl der Fehler auch auftritt wenn ich Solver normal im EXCEL starte. Habt ihr vielleicht ne zündende Idee wo mein Fehler ist?
Vielen Dank schonmal...
Grüße
Verena

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Solver im VBA, "Ein unerwarteter interner Fehler"
22.09.2009 09:42:45
Verena
Könnte es vielleicht daran liegen, dass meine Formel zu lang ist?
=C51*D52-F53*D54-F55*D56-F57*D58-F59*D60-F61*D62-F63*D64-F65*D66-F67*D68-F69*D70-F71*D72-F73*D74-F75*D76-F77*D78-F79*D80-F81*D82-F49*D50-F83*D84-F85*D86-F87*D88-F89*D90-F91*D92-F93*D94-F95*D96-F97*D98-F99*D100-F101*D102-F103*D104-F105*D106-F107*D108-F109*D110-F111*D112-F113*D114-F115*D116-F117*D118-F119*D120-F121*D122-F123*D124
AW: Solver im VBA, "Ein unerwarteter interner Fehler"
22.09.2009 11:57:19
fcs
Hallo Verena,
die Formel-Länge ist nicht das Problem.
Excel schluckt diese, wenn ich im Solver unter Excel 2003 die Formel ohne Nebenbedingen und nur wenigen veränderbaren Zellen eingebe.
Mögliche Ursachen: In Excel 2003 ist die Anzahl der veränderbaren Zellen oder die Anzahl der Nebenbedingungen kleiner als in Excel 2007. Falls das der Fall ist, stolpert Excel 2003 natürlich über die aus 2007 übernommenen Einstellungen. Setze in 2007 mal den Solver zurück, so dass keine Solvereinstellungen vorhanden sind. Dann im Excel 2003er Format speichern und Datei in 2003 öffnen Verweis auf SOLVER setzen und Makro starten.
Wenn deine Variablen Cell1 bis Cell38, CellRef1 bis CellRef38 und GESAMT1 bis GESAMT38 nichts Unverträgliches produzieren, dann sollte es eigentlich funktionieren.
Nachfolgend aufgezeichneter Code unter Excel 2003, ergänzt um ein paar VBA-spezifische Zeilen für den Solver.
Da du ja alle Parameter des Solvers in der Prozedur setzt, solltest du vorweg unbedingt ein
SolverReset
einfügen. So werden alle vorhanden Solvereinstellungen gelöscht. Andernfalls werden ggf. immer mehr Nebenbedingungen hinzugefügt.
Gruß
Franz
Sub Makro5()
SolverReset 'Solver-Einstellungen zurücksetzen
SolverOk SetCell:="$E$2", MaxMinVal:=3, ValueOf:="500", ByChange:= _
"$C$51,$D$52,$D$54,$F$53,$F$55,$E$56"
SolverSolve UserFinish:=False 'Vor Eintragen der Lösung Dialog anzeigen
SolverReset 'Solver-Einstellungen zurücksetzen
SolverAdd CellRef:="$C$51", Relation:=2, FormulaText:="$D$51"
SolverAdd CellRef:="$F$53", Relation:=2, FormulaText:="$D$54"
SolverOk SetCell:="$E$2", MaxMinVal:=3, ValueOf:="600", ByChange:= _
"$C$51,$D$52,$D$54,$F$53,$F$55,$E$56"
SolverSolve UserFinish:=False 'Vor Eintragen der Lösung Dialog anzeigen
If MsgBox("Solver-Einstellungen zurücksetzen?", vbYesNo + vbQuestion, _
"Solver-Einstellungen") = vbYes Then
SolverReset
End If
End Sub

Anzeige
AW: Solver im VBA, "Ein unerwarteter interner Fehler"
22.09.2009 15:57:55
Verena
Hallo Franz!! Dank dir für deine schnelle Antwort... :-) Auf den Gedanken kam ich noch gar nicht. Aber du hast Recht. Es liegt an der Anzahl der veränderbaren Zellen. Wenn ich allein die Anzahl minimiere läuft das Programm weiter. ABER: Habe mich eben mal schlau gemacht und lese im Microsoft Support (http://support.microsoft.com/kb/75714/de):
Die maximale Anzahl der veränderbaren Zellen und Einschränkungen, die ein Solver-Modell verwenden können sind in der folgenden Tabelle aufgeführt.
Microsoft Excel / Adjustable cells / Constraints
version /
---------------------------------------------------
97 / 200 / unlimited/500*
98 / 200 / unlimited/500*
2000 / 200 / unlimited.500*
* Wenn Sie mit einem linearen Problem arbeiten, ist die maximale Anzahl von Einschränkungen, die Sie verwenden können unbegrenzt. Wenn Sie mit einem nicht linearen Problem arbeiten, ist die maximale Anzahl von Einschränkungen, die Sie verwenden können, 500.

Ja prima... 200 Veränderbare Zellen sind das doch nimmer...
Naja ist ja auch egal... Weiß jetzt trotzdem nicht so Recht wie ich weiter vorgehen soll. Mhhh... die Lösung Veränderbare Zellen minimieren gefällt mir nicht so recht. Bräuchte nämlich alle zur Berechnung. Weißt du/ihr ne Möglichkeit das zu umgehen?
(Blöde Frage, ich weiß, aber in mir steckt noch ein kleiner Funken Hoffnung)
Viele Grüße
Verena
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige