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

Forumthread: Solver in VBA

Solver in VBA
19.01.2016 16:00:10
Max
Hallo zusammen,
es wäre toll, wenn mir jemand bei Folgendem Problem helfen könnte:
Ich möchte die Funktionen des Solvers in VBA nutzen. Prinzipiell läuft mein Programm auch schon. Das Problem ist jedoch, dass ich gerne auf die Angabe von konkreten Zellen verzichten möchte und lieber vorher im Code definierte Variablen nutzen möchte.
Zur Verdeutlichung ein Beispiel:
bisher sieht der Code so aus:
SolverReset
SolverOk SetCell:="$E$6", MaxMinVal:=1, ValueOf:=0, ByChange:="$C$3:$D$3", _
Engine:=1, EngineDesc:="GRG Nonlinear"
und die Nebenbedingungen bisher so:
SolverAdd CellRef:="$E$3", Relation:=1, FormulaText:="$F$3"
SolverAdd CellRef:="$E$4", Relation:=1, FormulaText:="$F$4"
SolverAdd CellRef:="$E$5", Relation:=1, FormulaText:="$F$5"
Nun würde ich gerne bei SetCell, ByChange, CellRef und FormulaText die Zellbezüge durch Variablen ersetzen.
Gibt es hierfür eine Möglichkeit oder Befehle innerhalb des Solvers, die das ermöglichen?
Für Hilfe wäre ich sehr dankbar!
Viele Grüße
Max

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Solver in VBA
25.01.2016 05:49:13
Michael
Hi Max,
die Angaben sind ja schlichte Strings, d.h. wenn z.B. vor Deinem Schnipsel steht...
Dim S1 as String, S2 as String
S1 = "$E$3" : S2 = "$F$3"
kannst Du unten schreiben:
SolverAdd CellRef:=S1, Relation:=1, FormulaText:=S2
Schöne Grüße,
Michael
P.S.: noch was gefunden: https://www.herber.de/forum/archiv/1216to1220/1217332_VBA_Solver.html
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Nutzung des Solvers in VBA für Excel


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Modul hinzufügen: Klicke mit der rechten Maustaste auf ein Projekt im Projekt-Explorer, wähle Einfügen und dann Modul.
  3. Variablen definieren: Definiere die Variablen, die die Zellbezüge speichern sollen. Beispiel:

    Dim SetCell As String
    Dim ByChange As String
    Dim CellRef1 As String
    Dim FormulaText1 As String
    
    SetCell = "$E$6"
    ByChange = "$C$3:$D$3"
    CellRef1 = "$E$3"
    FormulaText1 = "$F$3"
  4. Solver initialisieren: Setze den Solver mit den definierten Variablen ein:
    SolverReset
    SolverOk SetCell:=SetCell, MaxMinVal:=1, ValueOf:=0, ByChange:=ByChange, Engine:=1, EngineDesc:="GRG Nonlinear"
  5. Nebenbedingungen hinzufügen: Füge die Nebenbedingungen mit den Variablen hinzu:
    SolverAdd CellRef:=CellRef1, Relation:=1, FormulaText:=FormulaText1
  6. Solver ausführen: Nutze den Befehl, um die Optimierung durchzuführen:
    SolverSolve UserFinish:=True

Häufige Fehler und Lösungen

  • Fehler: "Solver nicht gefunden"
    Lösung: Stelle sicher, dass das Solver-Add-In aktiviert ist. Gehe zu Datei > Optionen > Add-Ins, wähle Excel-Add-Ins und aktiviere das Solver-Add-In.

  • Fehler: Ungültige Zellbezüge
    Lösung: Überprüfe die Zellbezüge in den Variablen. Sie sollten im richtigen Format (z.B. "$E$3") eingegeben werden.


Alternative Methoden

Wenn das Arbeiten mit dem VBA-Editor nicht deinen Bedürfnissen entspricht, kannst du auch den Solver direkt über die Excel-Oberfläche nutzen. Gehe zu Daten > Solver und gib die Zellbezüge dort ein. Dies ist jedoch weniger flexibel als die Programmierung mit VBA.


Praktische Beispiele

  1. Maximierung eines Wertes: Um den Wert in Zelle E6 zu maximieren, während die Zellen C3 und D3 verändert werden, kannst du den oben beschriebenen Code verwenden.

  2. Nebenbedingungen hinzufügen: Wenn du sicherstellen möchtest, dass der Wert in E3 immer größer oder gleich dem Wert in F3 ist, füge diese Bedingung über den Solver in VBA hinzu.


Tipps für Profis

  • Schnellere Ausführung: Halte deine Solver-Modelle einfach. Komplexe Modelle benötigen mehr Rechenzeit.
  • Debugging: Setze Haltepunkte im VBA-Code, um Probleme schnell zu identifizieren.
  • Solver in VBA optimieren: Experimentiere mit verschiedenen Solver-Engines (z.B. GRG Nonlinear oder Simplex LP) für unterschiedliche Probleme.

FAQ: Häufige Fragen

1. Wie aktiviere ich den Solver in Excel?
Gehe zu Datei > Optionen > Add-Ins, wähle Excel-Add-Ins und aktiviere das Solver-Add-In.

2. Kann ich den Solver auch in Excel für Mac verwenden?
Ja, der Solver ist auch in der Mac-Version von Excel verfügbar. Stelle sicher, dass du das Add-In aktivierst.

3. Welche Excel-Version benötige ich für VBA Solver?
Der VBA Solver ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016 und neuer.

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