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

Solver automatisch aufrufen und Berechnen lassen

Forumthread: Solver automatisch aufrufen und Berechnen lassen

Solver automatisch aufrufen und Berechnen lassen
27.05.2005 12:02:13
Horst
Hey !
Ich moechte per Makro den solver automtisch zellenwerteubergeben dieser soll dann rechnen und das ergebnis in einer zelle wieder ablegen.
Mit dem makro:
-----------------------------------

Sub AddINEinfuegen()
Dim ad As AddIn
Set ad = AddIns("SOLVER")
If ad.Installed = True Then
MsgBox "Solver schon installiert"
Else
MsgBox "Solver wird installiert"
ad.Installed = True
End If
Set ad = Nothing
End Sub

----------------------
kann ich ihn zumindest schon automatisch installieren.
Wenn ich dann das naechste makro aufrufe:
-----------------------------------------

Sub Solverberechne()
SolverOk(SetCell = "ZIELZELLE", MaxMinVal =2, Valueof ="0", ByChange ="ZELLENBEREICH")
SolverSolve True
End Sub
Kommt die Fehlermeldung: Fehler beim Kompilieren Erwartet =
Nehme ich die Klammerung weg:
SolverOk SetCell = "ZIELZELLE", MaxMinVal =2, Valueof ="0", ByChange ="ZELLENBEREICH"
SolverSolve True
Kommt die Fehlermeldung: 

Sub und Funktion nicht definiert.
Hat hier jemand einen tipp.
Und noch ne frage:
Wie lege ich denn neben bedingungen mit codezielen fest z.b.
Das zwei zellen den gleichen wert haben muessen?
wer weiss hier einen rat?
Oder wo kann ich das alles nachlesen?
gruss
horst

		
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Solver automatisch aufrufen und Berechnen lass
27.05.2005 12:09:15
Florian
Hallo Horst,
Du musst die Parameter mit ":=" festlegen, also:
MaxMinVal :=2, Valueof :="0", ByChange :="ZELLENBEREICH" usw.
Gruß Florian
AW: Solver automatisch aufrufen und Berechnen lass
27.05.2005 12:19:55
horst
Hey Florian !
Habe ich gemacht das problem ist das selbe !
Auch habe ich das mal mit dem makrodecoder aufgenommen.
--------------------------------

Sub MakroSolver()
' MakroSolver Makro
SolverOk SetCell:="$G$5", MaxMinVal:=2, ValueOf:="0", ByChange:="$G$5"
SolverSolve
End Sub

--------------------------
Fehlermeldeung ebenfalls:

Sub und Funktion nicht definiert
Wat kann das denn sein?
Hast du ne loesung?
Gruss
horst

Anzeige
AW: Solver automatisch aufrufen und Berechnen lass
27.05.2005 12:36:47
Florian
Hi Horst,
hast du in VBA einen Verweis auf den Solver gesetzt?
Unter Extras/Verweise muss der Solver aktiviert sein.
AW: Solver automatisch aufrufen und Berechnen lass
27.05.2005 13:18:08
Horst
Hey !
Danke das war die loesung danke, danke, danke !!
Und wie kan ich verhindern, dass wenn jemand anders die datei ausfuehrt, dass der fehler wieder vorkommt.
Ich meine kann ich das aktivieren des verweises solver auch automatisieren per makro?
Hast du auch daruaf ne antwort?
Gruss
horst
Anzeige
AW: Solver automatisch aufrufen und Berechnen lass
27.05.2005 13:21:48
Horst
Hey ich nochmal !
Jetzt moechte ich aber verhindern, dass die dialogbox vom solver hochkommt, sonder das ergebnis gleich uebernehmen!
Kann man dieses ebenfalls durch einen befehl automatisieren?
Gruss
horst
AW: Solver automatisch aufrufen und Berechnen lass
27.05.2005 13:55:22
Florian
Hi Horst,
Dz hast Glück, hatte gestern das gleiche Problem...
Setze in Solversolve userfinish:=True, dann wird die Meldung unterdrückt.
Der Verweis müsste normal immer gespeichert bleiben, soweit Du es nicht deaktivierst, analog zum Add-in in Excel.
Viele Grüße, Florian
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel Solver automatisch ausführen mit VBA


Schritt-für-Schritt-Anleitung

Um den Excel Solver automatisch auszuführen, kannst Du ein VBA-Makro verwenden. Hier sind die grundlegenden Schritte:

  1. Solver-Add-In aktivieren: Stelle sicher, dass das Solver-Add-In aktiviert ist. Gehe dazu zu Extras > Add-Ins und aktiviere Solver-Add-In.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Ein neues Modul erstellen: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx), wähle Einfügen und dann Modul.

  4. Makro für Solver erstellen: Füge den folgenden Code in das Modul ein:

    Sub SolverAutomatischAusführen()
       Dim ad As AddIn
       Set ad = AddIns("Solver")
       If Not ad.Installed Then
           ad.Installed = True
       End If
       SolverOk SetCell:="$G$5", MaxMinVal:=2, ValueOf:="0", ByChange:="$G$5"
       SolverSolve UserFinish:=True
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Sub und Funktion nicht definiert": Dieser Fehler tritt auf, wenn der Verweis auf das Solver-Add-In nicht gesetzt ist. Gehe zu Extras > Verweise im VBA-Editor und aktiviere den Solver.

  • Fehlermeldung: "Fehler beim Kompilieren, Erwartet =": Achte darauf, dass Du die Parameter im SolverOk-Befehl korrekt mit := zuweist, z.B. MaxMinVal:=2.


Alternative Methoden

Eine alternative Methode, den Excel Solver automatisch auszuführen, wäre die Verwendung von Excel-Formeln oder benutzerdefinierten Funktionen, jedoch ist dies nicht so flexibel wie die Verwendung von VBA.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um den Excel Solver für eine Optimierungsaufgabe zu verwenden:

Sub BeispielSolver()
    SolverOk SetCell:="$C$1", MaxMinVal:=1, ValueOf:="0", ByChange:="$A$1:$B$1"
    SolverAdd CellRef:="$A$1", Relation:=2, FormulaText:="$B$1"
    SolverSolve UserFinish:=True
End Sub

In diesem Beispiel wird die Zelle C1 optimiert, während die Zellen A1 und B1 geändert werden. Zudem wird eine Bedingung hinzugefügt, die sicherstellt, dass A1 gleich B1 ist.


Tipps für Profis

  • Automatisierung: Du kannst das Aktivieren des Solver-Add-Ins ebenfalls in Dein Makro integrieren, um sicherzustellen, dass es immer verfügbar ist.
  • Fehlermeldungen unterdrücken: Setze UserFinish:=True in SolverSolve, um die Dialogbox zu unterdrücken, die normalerweise nach der Berechnung erscheint.
  • Bedingungen hinzufügen: Verwende SolverAdd, um zusätzliche Bedingungen in Deinem Solver-Szenario festzulegen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Solver immer funktioniert?
Vergewissere Dich, dass der Solver in den Verweisen aktiviert ist und der Code korrekt ausgeführt wird.

2. Kann ich den Solver ohne Benutzerinteraktion ausführen?
Ja, indem Du UserFinish:=True in SolverSolve setzt, kannst Du die Benutzerinteraktion vollständig vermeiden.

3. Wie gehe ich mit mehreren Zellen um?
Du kannst mehrere ByChange-Bereiche definieren, indem Du sie durch Kommas trennst, z.B. ByChange:="$A$1,$B$1".

4. Was mache ich, wenn der Solver nicht installiert ist?
Du kannst das Installieren des Solvers im Makro automatisieren, indem Du den entsprechenden Code hinzufügst, der das Add-In aktiviert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige