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

Infofenster ja/nein/abbrechen beinflussen

Forumthread: Infofenster ja/nein/abbrechen beinflussen

Infofenster ja/nein/abbrechen beinflussen
Stephan
Hallo Profis,
habe folgenden Code:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.SaveAs (ActiveWorkbook.Path) & ("\offene Aufträge_" & Format(Date, "YYYY_MM_dd")) _
_
End Sub

Wenn es die Datei bereits gibt, kommt eine Abfrage. Wie bekomme ich den die Schaltfläche "Abbrechen" weg, da diese ja in diesem Fall gleichbedeutend der Schaltfläche "nein" ist.
Gruß
Stephan
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Infofenster ja/nein/abbrechen beinflussen
20.09.2011 19:12:22
fcs
Hallo Stephan,
Wie bekomme ich den die Schaltfläche "Abbrechen" weg, da diese ja in diesem Fall gleichbedeutend der Schaltfläche "nein" ist.
In diesem Zusammenhang garnicht.
Was passiert denn wenn du auf "Nein" oder "Abbrechen" klicks?
Bei mir bricht das Makro mit Fehlermeldung ab. Das lässt sich nur so vermeiden:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
ActiveWorkbook.SaveAs (ActiveWorkbook.Path) & ("\offene Aufträge_" _
& Format(Date, "YYYY_MM_dd"))
End Sub
Danach kommen dann ggf. Sicherheitsabfragen für die aktive Arbeitsmappe.
Wenn du die vorhandene Datei nicht einfach überschreiben willst, dann muss du deine eigene kleine Menüführung mit MsgBoxen gestalten.
Gruß
Franz

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sDatei As String
sDatei = ActiveWorkbook.Path & "\offene Aufträge_" & Format(Date, "YYYY_MM_DD")
If Dir(sDatei & ".xls*")  "" Then
If MsgBox("Datei """ & sDatei & """ existiert schon!" & vbLf _
& "Datei überschreiben?", vbQuestion + vbYesNo, "Tageskopie speichern") = vbYes Then
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs sDatei
Application.DisplayAlerts = True
Else
'keine Ahnung
If Me.Saved = True Then
'do nothing
Else
If MsgBox("Was-Nun? Evtl. muss du weiter arbeiten!" & vbLf _
& "Datei speichern und schliessen?", _
vbQuestion + vbOKCancel, "Tageskopie speichern") = vbOK Then
ActiveWorkbook.Save
Else
Cancel = True 'Datei schliessen wird abgebrochen
End If
End If
End If
Else
ActiveWorkbook.SaveAs sDatei
End If
End Sub

Anzeige
AW: Infofenster ja/nein/abbrechen beinflussen
20.09.2011 20:27:35
Stephan
Hallo Franz,
PERFEKT !!
Prinzip habe ich nun verstanden, pass mir das noch entsprechend nach meinen Bedürfnissen an. Hab vielen Dank für deine große Hilfe ....
Gruß
Stephan
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Infofenster in Excel VBA anpassen: Ja, Nein oder Abbrechen


Schritt-für-Schritt-Anleitung

Um das Excel-Infofenster bei der Verwendung von VBA zu beeinflussen, kannst du den folgenden Code verwenden. Dieser Code zeigt eine Ja/Nein-Abfrage an, wenn die Datei bereits existiert, und entfernt die Schaltfläche "Abbrechen".

  1. Öffne den VBA-Editor (Alt + F11).
  2. Wähle die Arbeitsmappe aus, für die du das Infofenster anpassen möchtest.
  3. Füge den folgenden Code in das ThisWorkbook-Modul ein:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim sDatei As String
    sDatei = ActiveWorkbook.Path & "\offene Aufträge_" & Format(Date, "YYYY_MM_DD")

    If Dir(sDatei & ".xls*") <> "" Then
        If MsgBox("Datei """ & sDatei & """ existiert schon!" & vbLf & "Datei überschreiben?", vbQuestion + vbYesNo, "Tageskopie speichern") = vbYes Then
            Application.DisplayAlerts = False
            ActiveWorkbook.SaveAs sDatei
            Application.DisplayAlerts = True
        Else
            If Me.Saved = False Then
                If MsgBox("Was-Nun? Evtl. muss du weiter arbeiten!" & vbLf & "Datei speichern und schließen?", vbQuestion + vbOKCancel, "Tageskopie speichern") = vbOK Then
                    ActiveWorkbook.Save
                Else
                    Cancel = True ' Datei schließen wird abgebrochen
                End If
            End If
        End If
    Else
        ActiveWorkbook.SaveAs sDatei
    End If
End Sub

Häufige Fehler und Lösungen

  • Fehler: Makro bricht mit Fehlermeldung ab.

    • Lösung: Stelle sicher, dass du On Error Resume Next am Anfang deines Codes hinzufügst, um Fehler zu ignorieren, die beim Speichern auftreten könnten.
  • Problem: Nicht gewünschte Abfragen erscheinen.

    • Lösung: Nutze Application.DisplayAlerts = False, um die Standard-Warnmeldungen von Excel zu unterdrücken.

Alternative Methoden

Falls du eine andere Art der Abfrage benötigst, kannst du auch UserForms verwenden, um mehr Kontrolle über die Benutzeroberfläche zu haben. Dies ermöglicht dir, benutzerdefinierte Schaltflächen und Eingabefelder zu integrieren.

' Beispiel eines einfachen UserForms
Private Sub UserForm_Initialize()
    ' Initialisiere UserForm
End Sub

Praktische Beispiele

Hier ist ein Beispiel für eine einfache Ja/Nein-Abfrage, die du in deinem VBA-Code verwenden kannst:

If MsgBox("Möchtest du die Änderungen speichern?", vbYesNo + vbQuestion, "Änderungen speichern") = vbYes Then
    ActiveWorkbook.Save
End If

Tipps für Profis

  • Nutze vbCritical für kritische Warnungen, um die Dringlichkeit zu erhöhen.
  • Wenn du mehrere Abfragen verwenden möchtest, kannst du eine Funktion erstellen, die alle MsgBox-Logiken zusammenfasst.
  • Experimentiere mit Application.OnTime, um geplante Abfragen oder gespeicherte Aktionen auszuführen.

FAQ: Häufige Fragen

1. Wie kann ich die Schaltfläche "Abbrechen" ganz entfernen? Um die Schaltfläche "Abbrechen" zu entfernen, musst du die Logik deiner Abfragen anpassen und sicherstellen, dass du nur die gewünschten Schaltflächen in deiner MsgBox verwendest.

2. Kann ich die MsgBox anpassen? Ja, du kannst die MsgBox anpassen, indem du verschiedene Kombinationen von vbYesNo, vbOKCancel und anderen Optionen verwendest, um die Benutzerinteraktion zu steuern.

3. Welche Excel-Version wird benötigt? Diese Methoden sind für Excel 2010 und neuere Versionen geeignet. Achte darauf, dass Makros in deiner Excel-Version aktiviert sind.

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