Automatisches Bestätigen des OK Buttons in Excel
Schritt-für-Schritt-Anleitung
Um das Problem mit dem lästigen Bestätigungsfenster des Solvers zu lösen, kannst Du den folgenden VBA-Code verwenden. Dieser umgeht das Bestätigungsfenster, indem er die Eigenschaft UserFinish auf True setzt. Hier ist eine Schritt-für-Schritt-Anleitung:
-
Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu starten.
-
Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.
-
Kopiere den folgenden Code in das Modul:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 10
SolverOk SetCell:=Cells(i, 2), MaxMinVal:=3, ValueOf:=9 + i, ByChange:=Cells(i, 1)
SolverSolve UserFinish:=True
Next i
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Füge einen Button (z.B. CommandButton) hinzu, um das Makro auszuführen.
Wenn Du nun auf den OK Button in Deinem Formular klickst, wird das Solver-Ergebnis automatisch akzeptiert, ohne dass Du jedes Mal bestätigen musst.
Häufige Fehler und Lösungen
Alternative Methoden
Falls Du nicht mit VBA arbeiten möchtest, kannst Du auch die Option Application.DisplayAlerts = False verwenden, um alle Warnmeldungen in Excel zu unterdrücken. Das sieht so aus:
Application.DisplayAlerts = False
SolverSolve
Application.DisplayAlerts = True
Diese Methode unterdrückt jedoch alle Warnmeldungen, nicht nur die des Solvers. Daher ist es ratsam, dies nur vorübergehend zu verwenden.
Praktische Beispiele
-
Beispiel für eine Berechnung mit 1000 Zeilen:
Wenn Du den Code für 1000 Zeilen anpassen möchtest, ändere einfach die Schleifenbedingung:
For i = 1 To 1000
SolverOk SetCell:=Cells(i, 2), MaxMinVal:=3, ValueOf:=9 + i, ByChange:=Cells(i, 1)
SolverSolve UserFinish:=True
Next i
-
Verwendung von OK Cancel Dialogen:
Wenn Du die Bestätigung für spezielle Vorgänge benötigst, kannst Du auch einen Dialog mit MsgBox integrieren:
If MsgBox("Möchten Sie fortfahren?", vbOKCancel) = vbOK Then
' Führe den Solver aus
End If
Tipps für Profis
- Nutze
Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass Du alle Variablen deklarierst. Das hilft, Fehler zu vermeiden.
- Teste Deinen Code zuerst mit einer kleinen Anzahl an Zeilen, bevor Du ihn auf große Datensätze anwendest, um unerwartete Ergebnisse zu vermeiden.
FAQ: Häufige Fragen
1. Kann ich den OK Button auch für andere Dialoge automatisieren?
Ja, Du kannst ähnliche Techniken verwenden, um auch andere Dialoge in Excel zu automatisieren, indem Du die DisplayAlerts-Eigenschaft anpasst oder UserFinish in anderen Makros verwendest.
2. Funktioniert dieser Code in allen Excel-Versionen?
Der Code sollte in den meisten modernen Excel-Versionen (ab Excel 2007) funktionieren. Überprüfe jedoch, ob der Solver in der von Dir verwendeten Version aktiviert ist.