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

Forumthread: OK Button bestätigen

OK Button bestätigen
Frank
Hallo liebes Forum,
ich habe ein kleines Makro, welches den Solver aufruft und 10 Zeilen durchläuft. Das Problem dabei ist, dass nach jeder Berechnung vom Solver ein Fenster angezeigt wird, dass ein Ergebnis gefunden wurde und ob ich es verwenden möchte. Ich habe aber eigentlich circa 1000 Zeilen und möchte an dieser Stelle erfragen, ob es einen Befehl gibt, der mir dieses "OK" drücken abnimmt?
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
Next i
End Sub

Vielen Dank und viele Grüße,
Frank
Anzeige

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

Betreff
Benutzer
Anzeige
AW: OK Button bestätigen
19.01.2011 13:43:18
GERWAS
HAllo
Application.DisplayAlerts = False
sollte das Problem beheben...
gruß gerwas
SolverSolve UserFinish:=True
19.01.2011 14:14:56
Frank
Ich habe die Lösung gefunden:
SolverSolve UserFinish:=True
Vielen Dnak und viele Grüße,
Frank
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

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:

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

  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  3. 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
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. 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

  • Fehler: Der Solver wird nicht gestartet.

    • Lösung: Stelle sicher, dass der Solver in Excel aktiviert ist. Gehe zu Datei > Optionen > Add-Ins, wähle Excel-Add-Ins und aktiviere den Solver.
  • Fehler: Das Makro gibt einen Laufzeitfehler aus.

    • Lösung: Überprüfe, ob die Zellreferenzen in SolverOk korrekt sind. Eventuell musst Du die Zellen anpassen, um Deine Daten abzubilden.

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

  1. 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
  2. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige