Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Solver über Makro laufen lassen

Forumthread: Solver über Makro laufen lassen

Solver über Makro laufen lassen
04.11.2003 09:44:06
Jan
Hallo zusammen,

ich würde gerne den Solver per Makro ausführen. Leider gibt dieses mir immer einen Fehler in der einen Zeile (siehe Pfeil). Ihm fehlt wohl eine Deklaration. Leider habe ich kaum Ahnung von VBA.

mfg
Jan


Sub SolverMakro()
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("GuV").Select
Range("O129").Select
=>  SolverOk SetCell:="$C$137", MaxMinVal:=1, ValueOf:="0", ByChange:= _
"$D$131:$X$131"
SolverSolve
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Eingabe Werte").Select
Range("D61").Select
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: siehe Excels VBA-Hilfe
04.11.2003 10:01:16
Galenzo
Hallo,
frag mal die eingebaute Hilfe nach "Solver". Dort findest du die Ursache des Fehlers:
Zitat: "...Bevor Sie diese Funktion [Solver] einsetzen, müssen Sie einen Verweis auf das Solver-Add-In herstellen. Klicken Sie, während ein Visual Basic-Modul aktiv ist, im Menü Extras auf Verweise, und aktivieren Sie das Kontrollkästchen Solver.xls im Feld Verfügbare Verweise..."

Dann sollte es tun!

Viel Erfolg!
Anzeige
AW: siehe Excels VBA-Hilfe
04.11.2003 10:35:15
Jan
Hallo,

danke für deinen Tipp. Leider ist der so bei mir nicht durchfürbar, da ich unter Extras keine Option Verweis habe.

mfg
Ole
AW: imVBA-Fenster!!
04.11.2003 10:47:40
Galenzo
watt? - na klar gibt's das: Beachte: im VBA-FENSTER!!
AW: imVBA-Fenster!!
04.11.2003 11:59:19
Jan
Thx!
Wer lesen kann ist klar im Vorteil. Allerdings muß ich das Solver-Fenster immernoch von Hand bestätigen, wenn eine / keine Lösung gefunden wurde.
Fehlt mir da eine Zeile im Code oder geht das generell nicht?

mfg
Jan
Anzeige
AW: SolverSolve (True)
04.11.2003 12:37:40
Galenzo
Oooch Mann, eben hast du grade noch gesagt "...wer lesen kann..." :-)
Ich empfehle dir gründliches Lesen in der VBA-Hilfe, da steht doch eigentlich alles dazu drin. Schau dir mal den Text zu "SolverSolve" an - dort findest du die Lösung:
der Parameter UserFinish! Den setzt du mal auf TRUE, also:
      SolverSolve (True)
oder zur Übersichtlichkeit auch so:
      SolverSolve Userfinish:=True
Das sollte es tun!

Viel Erfolg dann.
Anzeige
AW: SolverSolve (True)
04.11.2003 12:55:56
Jan
Ja so ist das halt, wenn man sich mit VBA nicht besonders auskennt. Da überliest man schnell mal so einige Dinge.

Hoffe ich habe dich nicht zu sehr genervt. Ist normalerweise nicht meine Art, erst ein Forum zu nutzen und dann die Hilfe zu studieren.

Vielen Dank
Jan
;
Anzeige

Infobox / Tutorial

Solver über Makro ausführen in Excel


Schritt-für-Schritt-Anleitung

Um den Excel Solver automatisch auszuführen, kannst du ein einfaches Makro in VBA erstellen. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Rechtsklicke im Projekt-Explorer auf „VBAProject (DeineDatei.xlsx)“ und wähle „Einfügen“ > „Modul“.

  3. Kopiere den folgenden Code in das Modul:

    Sub SolverMakro()
       ActiveWindow.ScrollWorkbookTabs Sheets:=1
       Sheets("GuV").Select
       Range("O129").Select
       SolverOk SetCell:="$C$137", MaxMinVal:=1, ValueOf:="0", ByChange:= _
       "$D$131:$X$131"
       SolverSolve UserFinish:=True
       ActiveWindow.ScrollWorkbookTabs Sheets:=-1
       ActiveWindow.ScrollWorkbookTabs Sheets:=-1
       Sheets("Eingabe Werte").Select
       Range("D61").Select
    End Sub
  4. Stelle sicher, dass das Solver-Add-In aktiviert ist: Gehe zu Extras > Verweise und aktiviere „Solver.xls“.

  5. Schließe den VBA-Editor und führe das Makro aus: Drücke ALT + F8, wähle SolverMakro und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

  • Fehler: Sub or function not defined: Solver

    • Stelle sicher, dass das Solver-Add-In aktiviert ist. Dies kannst du unter Extras > Verweise überprüfen.
  • Solver-Fenster öffnet sich zur Bestätigung

    • Füge UserFinish:=True zu SolverSolve hinzu, um das Solver-Fenster automatisch zu bestätigen.

Alternative Methoden

Falls du den Solver nicht über ein Makro steuern möchtest, kannst du den Excel Solver auch manuell über die Registerkarte „Daten“ aufrufen:

  1. Wähle die Zelle, die du optimieren möchtest.
  2. Klicke auf „Daten“ > „Solver“.
  3. Fülle die erforderlichen Felder aus und klicke auf „Lösen“.

Diese Methode ist jedoch nicht so effizient wie die Verwendung eines Makros, da sie manuelle Eingriffe erfordert.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie ein SolverMakro in der Praxis aussieht:

Sub BeispielSolver()
    SolverOk SetCell:="$A$1", MaxMinVal:=1, ValueOf:="0", ByChange:="$B$1"
    SolverSolve UserFinish:=True
End Sub

In diesem Beispiel wird die Zelle A1 optimiert, um einen bestimmten Wert zu erreichen, wobei die Zelle B1 verändert wird.


Tipps für Profis

  • Verwende SolverReset, um vorherige Solver-Einstellungen zurückzusetzen, bevor du neue Einstellungen vornimmst.
  • Nutze die SolverFinish Funktion, um das Ergebnis des Solver-Prozesses zu verarbeiten.
  • Experimentiere mit verschiedenen Solver-Parametern, um die besten Ergebnisse für deine spezifischen Probleme zu erzielen.

FAQ: Häufige Fragen

1. Wie kann ich den Solver in VBA aktivieren? Aktiviere den Solver über Extras > Verweise und aktiviere „Solver.xls“.

2. Warum funktioniert mein Makro nicht? Überprüfe, ob die Solver-Referenz korrekt gesetzt ist und dass du den Code im richtigen Modul eingefügt hast.

3. Was bedeutet UserFinish:=True bei SolverSolve? Durch diese Einstellung wird das Solver-Fenster automatisch geschlossen, ohne dass du manuell bestätigen musst, ob eine Lösung gefunden wurde.

4. Wo finde ich die Hilfe zu Solver in VBA? Im VBA-Editor kannst du die integrierte Hilfe verwenden, indem du auf Hilfe > Microsoft Visual Basic-Hilfe gehst und nach „Solver“ suchst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige