Solver über VBA starten? Hilferuf an Nepumuk

Bild

Betrifft: Solver über VBA starten? Hilferuf an Nepumuk von: Mathe
Geschrieben am: 17.02.2005 12:35:51

Hallo liebes Forum und v.a.lieber Nepumuk,

kann mir bitte einer sagen wie ich den Solver über VBA aktivieren kann?

Ich habe 49 x 41 Tabelle für die ich in jeder ZElle den Solver nicht immer von Hand starten möchte.

Wie geht das?

DANKE FÜR DIE HILFE!

Bild


Betrifft: AW: Solver über VBA starten? Hilferuf an Nepumuk von: bst
Geschrieben am: 17.02.2005 12:53:58

Hallo Mathe,

www.google.de, Suche nach site:www.herber.de VBA Solver

Schon der 2. Link ist ein Volltreffer.

https://www.herber.de/tutorial/2003/basics4.htm

cu, Bernd


Bild


Betrifft: Solver über VBA starten? Geht nicht?? von: Mathe
Geschrieben am: 17.02.2005 14:11:42

Also erstmal danke für den Tipp aber das habe ich schon probiert.

Mein genaues Problem.

Also das Add-In Solver ist installiert.
Ich möchte es über VBA starten das geht nach obigen Link.

Nun möchte ich ja die Variabeln immer einlesen lassen also schreibe ich folgende ZEilen in VBA:
-------
Function löse(Zielzelle, Wert, Variabel)
löse = SolverOk(SetCell:=Zielzelle, MaxMinVal:=3, Valueof:=Wert, ByChange:=Variabel)
End Function

---------

Wenn ich nun weiter klicke kommt der Aufruf das erstellte Makro zu bennenen. Ich nenne es "test". Danach erscheint automatisch im VBA folgender Ausdruck:

---------
Sub test()
End Sub

--------

Nun gehe ich in Excel auf eine Zelle und schreibe dort:
=solve(A1;0;B2)
Dann drücke ich enter.

Nun erscheint die Fehlermeldung:
Fehler beim Kompilieren.
Sub oder 
Function nicht definiert.
Wenn ich OK klicke ist folgende Zeile gelb markiert:
Function löse(Zielzelle, Wert, Variabel)
WAS TUN??
DANKE FÜR DIE HILFE!!


Bild


Betrifft: AW: Solver über VBA starten? Geht nicht?? von: Tim
Geschrieben am: 17.02.2005 14:14:50

Die Funktion heißt löse und nicht solve

Tim


Bild


Betrifft: Der name der Funktion ist egal!! Wie gehts?? von: Mathe
Geschrieben am: 17.02.2005 14:22:31

Hi Tim,

wie ich die Funktion nenne ist völlig egal es kommt immer dasselbe Problem!! ich kann die Funktion auch tim oder Solve oder egal was nennen der Fehler ist immer derselbe.

Das Problem siehe: https://www.herber.de/bbs/user/18190.xls


Bild


Betrifft: AW: Der name der Funktion ist egal!! Wie gehts?? von: bst
Geschrieben am: 17.02.2005 14:34:51

Hi,

wie weit hast Du denn im Tutorial gelesen ?

Der Verweis im VBA auf solver.xla fehlt.

HTH, Bernd


Bild


Betrifft: Solver.xla ist ja je nach Version und Pc woanders von: Mathe
Geschrieben am: 17.02.2005 14:49:31

Hi Bernd,

danke für den Tipp aber die Solver Datei ist ja auf jedem Rechner woanders. War mein Fehler. Sorry.
Also wenn ich nun den Verweis Zulasse und den oben genannten VBA Code eingebe erscheint die Fehlermeldung "Solver: ein unerwarteter interner Fehler ist aufgetreten"

Was nun??

Dake für die Hilfe!!

Gruß Renny


Bild


Betrifft: Keine fehlermeldung sondern Wert = 1?? von: Mathe
Geschrieben am: 17.02.2005 15:04:06

Also nun habe ich keine Fehlermeldung mehr sondern habe in der ZElle auf einmal den Wert 1?

Was ist falsch??

Function löse(Zielzelle, Wert, Variabel)
löse = SolverOk(SetCell:="Zielzelle", MaxMinVal:=3, Valueof:="Wert", ByChange:="Variabel")
End Function



Bild


Betrifft: AW: Keine fehlermeldung sondern Wert = 1?? von: bst
Geschrieben am: 17.02.2005 15:17:34

Hallo Renny,

ich bin noch nie auf die Idee gekommen den Solver via einer Funktion aufzurufen.
Aber, ein SolverOK ist IMHO etwas wenig.
Vielleicht solltest Du ja erst mal ein paar Nebenbedingungen einbauen.
Versuch mal sowas, konventionell via Makro.

cu, Bernd
--
Sub Makro2()
   Sheets.Add
   Range("E4").Formula = "=SUM(A1:G1)"
   SolverOk SetCell:="$E$4", MaxMinVal:=2, ValueOf:="0", ByChange:="$A$1:$G$1"
   SolverAdd CellRef:="$A$1:$G$1", Relation:=3, FormulaText:="1"
   SolverAdd CellRef:="$A$1", Relation:=1, FormulaText:="9"
   SolverAdd CellRef:="$B$1:$C$1", Relation:=1, FormulaText:="5"
   SolverAdd CellRef:="$D$1:$G$1", Relation:=1, FormulaText:="10"
   SolverSolve True
End Sub



Bild


Betrifft: AW: Keine fehlermeldung sondern Wert = 1?? von: Mathe
Geschrieben am: 17.02.2005 15:51:44

Hi Bernd,

hmm tausend Dank erst mal. war ein guter Tipp dabei den ich übersehen hatte! DAAANKE!

So ich habe nun meine Subroutine für 1 Zelle am laufen!

Aber wie bekomme ich das nun automatiesiert für meine 41x49 Matrix hin?

Also z.B. nur mit den Variablen Namen Zielzelle und Variable.

Tausend Dank soweit.

Grüße aus dem eingeschneiten Suttgart


Bild


Betrifft: AW: Solver über VBA starten? Geht nicht?? von: bst
Geschrieben am: 17.02.2005 14:30:35

Auch Hallo,

Fange vielleicht mit was Einfacherem an.

Zeichne Dir mit dem Makrorekorder einen funktionierenden Solverablauf auf.

Schau Dir den resultierenden Code an

cu, Bernd


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Solver über VBA starten? Hilferuf an Nepumuk"