Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
504to508
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
504to508
504to508
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Solver läuft in Macro nicht

Solver läuft in Macro nicht
25.10.2004 16:35:24
Oliver
Hallo,
benötige DRINGEND Eure Hilfe. Folgendes Problem:
Wenn ich den Solver im Worksheet anwende, funktioniert dieser absolut ok.
Zeichne ich jedoch das Makro 1:1 parallel auf und spiele es wieder ab, so flackert nur der Bildschirm kurz aber der Solver setzt keinerlei Werte ein.
Auch wenn ich danach über Tools / Solver... das Dialog-Fenster aufrufe ist dies komplett leer, obwohl ich keinen SolverReset-Befehl abgesetzt habe.
In der VBA-Umgebung war über Tools / References die Solver-Library eingebunden. Habe es auch schon mit einem vorgeschalteten SolverReset probiert -- nichts..
Der vom Recorder aufgezeichnete Code sieht wie folgt aus:
Worksheets("Minor BS alloc").Activate
SolverOk SetCell:="$G$12", MaxMinVal:=3, ValueOf:="0", ByChange:="$G$7:$G$10"
SolverAdd CellRef:="$G$7:$G$10", Relation:=5, FormulaText:="binary"
SolverOk SetCell:="$G$12", MaxMinVal:=3, ValueOf:="0", ByChange:="$G$7:$G$10"
SolverSolve
Danke Euch schon im Voraus
Oliver

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Solver läuft in Macro nicht
Hans
Was Du hier gepostet hast gibt keinesfalls ein sinnvolles Solvermodel ab.
Zeile 2 und Zeile 4 sind identisch?
Was soll der Solver da optimieren, wenn als Nebenbedingung nur binäre-Werte vereinbart werden?
Gruß HW

WebSite:Excellenzen & Powerpoint interaktiv
PowerPoint-Anwendertage im Oktober 2004 in Fulda: www.ppt-user.de

AW: Solver läuft in Macro nicht
27.10.2004 13:33:27
Oliver
Hallo Hans,
habe nur wiedergegeben was der Recorder aufgezeichnet hat. Letztendlich habe ich natürlich die 2te Zeile aus meinem Code herausgenommen.
Warum nur binäre Werte? -- Habe dazu das zugehörige Excel-file angehängt (https://www.herber.de/bbs/user/12693.xls).
Die Problemstellung ist eingentlich die Folgende:
Ich habe ein Produktionsvolumen von X Einheiten, das sich in der Summe aus den Bauvolumina einzelner Modellreihen ergibt. Der Solver soll die Modellauswahl (0/1) treffen (in VBA statement die Range $G$7:$G$10). Eine Produktsumme saldiert die Volumen der ausgewählten Modelle mal 0/1. Die Abweichung zur Zielgröße X (in VBA statement Zelle $G$12)soll 0 sein:
Beispiel
Zielgröße: X = 1000 Einheiten Produktionsvolumen
____________________________________________binäre Auswahl______Produktsumme
Modell 1___350 Einheiten_________________________1_________________350
Modell 2___250 Einheiten_________________________1_________________250
Modell 3___100 Einheiten_________________________0__________________0
Modell 4___400 Einheiten_________________________1_________________400
_______________________________________________________________--------------
_________________________________________________________Total____1000
________________________________________Differenz zu Zielgröße X:___0 (Zielzelle Solver)
Hoffe durch das Beispiel und das Excel-Blatt wird die Problemstellung etwas deutlicher.
Danke Dir vorab und allen anderen, die helfen können (ist sicherlich eine Anwendung die auch andere gut gebrauchen können)
Oliver
Anzeige
AW: Solver läuft in Macro nicht
Hans
So ist das schon besser. Jedenfalls ist eine Zeile doppelt vorhanden. Du musst latürnich auch das Solvermodell zurücksetzen, bevor Du neue Werte eintragen kannst also etwa so:

Dim c As String
c = Left(ActiveCell.Address, 2 - (ActiveCell.Column > 26) * 1)
SolverReset
SolverOk SetCell:=c & "$12", MaxMinVal:=3, ValueOf:="0", ByChange:=c & "$7:" & c & "$10"
SolverAdd CellRef:=c & "$7:" & c & "$10", Relation:=5, FormulaText:="binary"
SolverSolve

Gruß HW
AW: Solver läuft in Macro nicht
28.10.2004 09:15:11
Oliver
Hallo Hans,
habe auch schon das SolverReset eingebaut gehabt. Jedoch durchläuft das Makro sauber den Code (habe auch Deinen Code mal eingebaut), jedoch bleiben die Zellen, in denen die Binärwerte erscheinen sollen, absolut leer (im Bsp G7:G10).
Da der Solver zu Beginn des Codes sein Reset erlebt, würde ich erwarten, daß nach Ausführung des Makros der Solver noch mit den Vorgaben vorbesetzt ist. Rufe ich jedoch nach Makroausführung über 'Tools' und 'Solver...' dessen Dialogfenster auf, so ist dies leer (nur 'Value of: 0' ist gesetzt).
Benutze Excel 9.0 SP3 in English. Kann es sein, daß hier bestimmte Flags gesetzt werden müssen oder weitere Add-Ins aktiviert werden sollten (das Solver-Add-Ins in VBA ist aktiviert)?
Anzeige
AW: Solver läuft in Macro nicht
28.10.2004 09:25:04
Oliver
Hallo Hans,
habe auch schon das SolverReset eingebaut gehabt. Jedoch durchläuft das Makro sauber den Code (habe auch Deinen Code mal eingebaut), jedoch bleiben die Zellen, in denen die Binärwerte erscheinen sollen, absolut leer (im Bsp G7:G10).
Da der Solver zu Beginn des Codes sein Reset erlebt, würde ich erwarten, daß nach Ausführung des Makros der Solver noch mit den Vorgaben vorbesetzt ist. Rufe ich jedoch nach Makroausführung über 'Tools' und 'Solver...' dessen Dialogfenster auf, so ist dies leer (nur 'Value of: 0' ist gesetzt).
Benutze Excel 9.0 SP3 in English. Kann es sein, daß hier bestimmte Flags gesetzt werden müssen oder weitere Add-Ins aktiviert werden sollten (das Solver-Add-Ins in VBA ist aktiviert)?
Anzeige
AW: Solver läuft in Macro nicht
Hans
Hm, der Objektkatalog weist unterschiedliche Sprachversionen auf.
So wie Du es schilderst versteht er die Übergabe-Adressen nicht.
Versuch doch mal die Adressen in RC-Notation zu formulieren.
Vielleicht versteht er das...
Gruß HW
AW: Solver läuft in Macro nicht
29.10.2004 16:39:25
Oliver
Hallo Hans,
denke ich habe mittlerweile - nach vielen Selbstzweifeln - des Pudels Kern gefunden:
Der Solver funktioniert generell nicht aus einem Makro heraus, wenn 3 Dinge zusammen kommen:
• Excel in Englisch installiert
• Excel Version 2000
• Service Pack 3 installiert
Alles trifft auf meine Konfiguration zu.
Es gibt hierzu von MS eine Beschreibung (Article ID 821430) die den Fehler eingesteht und ein Hot-Fix als Download empfiehlt. Habe dies ausprobiert, funktioniert aber auch nicht.
Bin dann auf Excel für XP umgeschwenkt. Dort funktioniert es sauber, sofern der SolverOK - Befehl VOR dem SolverAdd - Befehl steht. Ansonsten werden die im SolverAdd abgesetzten Bedingungen ignoriert.
Gruss
Oliver
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige