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

Solver mittels Makro starten

Forumthread: Solver mittels Makro starten

Solver mittels Makro starten
09.06.2005 16:59:46
Otmar
Hallo liebe Excel-Freunde,
habe eine mathematische Gleichung, die sich "zu Fuß" mit dem Solver lösen läßt. Aber anstatt nun immer wieder den Solver von Hand aufmachen zu müssen, dort die Werte und Bedingungen einzutragen und dann die Lösung errechnen zu lassen, wollte ich dieses von einem Makro übernehmen lassen.
Habe also "Makro aufzeichnen" aktiviert, den Solver aufgerufen, erst mal alles zurückgesetzt, dann die erforderlichen Einträge im Solver vorgenommen, den Solver lösen lassen und zuletzt die "Makroaufzeichnung beendet". Das Ergebnis auf dem Tabellenblatt bei dieser aufgezeichneten "Zu-Fuß-Lösung" war korrekt.
Sobald nun aber nach Makro-Start der erste Befehl "SolverReset" erreicht wird, erscheint die Fehler-Meldung: "Fehler beim Kompilieren: Sub oder Function nicht definiert".
Leider weiß ich nicht, was da noch zu definieren wäre.
Weiß jemand von euch Rat ?
Schon mal ein herzliches Danke schön vorab
Otmar
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Solver mittels Makro starten
09.06.2005 17:31:03
Florian
Hi Otmar,
Du musst in der VBA-Oberfläche unter Extras-Verweise eine referenz zum Solver aufbauen (ähnlich Add-In - Excel), sonst wird der Solver nicht erkannt
Greetings,
Florian
AW: Solver mittels Makro starten
09.06.2005 17:37:20
Otmar
Danke dir Florian, so funktioniert es.
Schöne Grüße
Otmar
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Solver automatisiert mit VBA in Excel nutzen


Schritt-für-Schritt-Anleitung

  1. Öffne die VBA-Oberfläche: Drücke ALT + F11, um die Entwicklertools zu öffnen.
  2. Verweise hinzufügen: Gehe zu Extras > Verweise und aktiviere das Kontrollkästchen für den "Solver" (Solver.xlam). Dies ist notwendig, damit der Solver in deinem Makro erkannt wird.
  3. Makro aufzeichnen: Aktiviere die Makroaufzeichnung und führe den Solver manuell aus, um die gewünschten Eingaben zu tätigen.
  4. Makro beenden: Stoppe die Aufzeichnung, um den ersten Entwurf deines Solver-Makros zu speichern.
  5. Bearbeite das Makro: Öffne das aufgezeichnete Makro und füge den Code zum automatischen Starten des Solvers hinzu. Achte darauf, den SolverReset-Befehl korrekt zu verwenden.
Sub SolverAutomatisch()
    SolverReset
    SolverOk SetCell:="$B$1", MaxMinVal:=1, ValueOf:=0, ByChange:="$A$1"
    SolverSolve UserFinish:=True
End Sub
  1. Makro ausführen: Du kannst das Makro jetzt direkt ausführen, um den Solver automatisch zu starten.

Häufige Fehler und Lösungen

  • Fehlermeldung "Sub oder Function nicht definiert": Dieser Fehler tritt auf, wenn der Solver nicht korrekt referenziert wurde. Stelle sicher, dass du in der VBA-Oberfläche unter Extras > Verweise die entsprechende Solver-Referenz aktiviert hast.
  • Solver funktioniert nicht: Überprüfe die Eingaben, die du im Makro verwendest. Stellen sicher, dass die Zellreferenzen korrekt sind und die Bedingungen stimmen.

Alternative Methoden

Eine weitere Möglichkeit, den Solver automatisch auszuführen, besteht darin, das Makro über ein Ereignis zu starten, wie z.B. beim Ändern einer Zelle. Du kannst das folgende Beispiel nutzen:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        SolverAutomatisch
    End If
End Sub

Diese Methode ermöglicht es, den Solver automatisch zu starten, wenn sich der Wert in Zelle A1 ändert.


Praktische Beispiele

Ein typisches Szenario für den Excel Solver ist die Optimierung von Produktionskosten. Angenommen, du möchtest die Kosten minimieren, während du die Produktionsmenge eines Produktes maximierst.

  1. Setze die Zellen für die Kosten und die Produktionsmengen.
  2. Verwende den Solver, um die optimale Lösung zu finden.

Der VBA-Code könnte folgendermassen aussehen:

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

Tipps für Profis

  • Verwende benannte Bereiche: Anstatt Zellreferenzen direkt zu verwenden, kannst du benannte Bereiche in Excel nutzen. Das macht deinen Code leserlicher und einfacher zu warten.
  • Fehlerbehandlung einfügen: Füge in dein Makro eine Fehlerbehandlung ein, um unerwartete Fehler abzufangen und eine benutzerfreundliche Fehlermeldung anzuzeigen.
On Error GoTo Fehlerbehandlung
' Dein Solver-Code hier
Exit Sub
Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End Sub

FAQ: Häufige Fragen

1. Wie kann ich den Solver automatisch bei jedem Workbook-Öffnen starten?
Du kannst den Workbook_Open-Ereignis verwenden, um deinen Solver beim Öffnen der Arbeitsmappe automatisch auszuführen.

2. Welche Excel-Version benötige ich für den Solver?
Der Solver ist in den meisten modernen Excel-Versionen verfügbar, darunter Excel 2010, 2013, 2016 und 2019. Stelle sicher, dass das Solver-Add-In aktiviert ist.

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