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

Makro erst nach Rückfrage ausführen

Forumthread: Makro erst nach Rückfrage ausführen

Makro erst nach Rückfrage ausführen
23.12.2004 12:31:56
Fritz
Hallo Excelfreunde,
ich habe ein Makro, das mir in einer Tabelle bestimmte Bereiche löscht auf eine "Schaltfläche gelegt". Ich möchte jedoch, dass beim Anklicken dieser Schaltfläche eine Rückfrage, erfolgt, ob die Daten überhaupt gelöscht werden sollen. Erst aufgrund einer Bestätigung sollte das Makro dann ausgeführt werden.
Wie kann ich das am besten umsetzen?
Danke bereits im Voraus für jede Unterstützung.
Gruß
Fritz
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro erst nach Rückfrage ausführen
23.12.2004 12:35:29
Josef
Hallo Fritz!
Das geht so:

Sub loeschen()
Dim strFrage As String
strFrage = MsgBox("Sollen die Daten wirklich gelöscht werden?" & Space(10), _
vbYesNo + vbQuestion, "Löschen")
If strFrage = vbNo Then Exit Sub
'hier der Code zum Löschen!
End Sub

Gruß Sepp
Anzeige
AW: Makro erst nach Rückfrage ausführen
Jorge
dim antwort as integer
antwort = msgbox "Wollen Sie die Daten löschen?"
if antwort 6 then
exit sub
else
(hier kommt dein makro)
Klappt! - Danke euch beiden! o.T.
Fritz
Klappt prima! Danke beiden Helfern! o.T.
Fritz
Anzeige
Anzeige

Infobox / Tutorial

Makro erst nach Rückfrage ausführen


Schritt-für-Schritt-Anleitung

Um ein Excel Makro zu erstellen, das nach einer Rückfrage ausgeführt wird, kannst Du folgenden VBA-Code verwenden. Dieser Code fragt den Benutzer, ob die Daten wirklich gelöscht werden sollen, bevor das Löschen durchgeführt wird.

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

  2. Klicke im Projektfenster mit der rechten Maustaste auf DieseArbeitsmappe und wähle Einfügen > Modul.

  3. Füge den folgenden Code in das Modul ein:

    Sub loeschen()
       Dim strFrage As String
       strFrage = MsgBox("Sollen die Daten wirklich gelöscht werden?" & vbCrLf, _
       vbYesNo + vbQuestion, "Löschen")
       If strFrage = vbNo Then Exit Sub
       ' Hier der Code zum Löschen!
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Weise das Makro einer Schaltfläche zu, indem Du Entwicklertools > Einfügen > Schaltfläche (Formularsteuerelement) auswählst und das Makro auswählst.

Jetzt wird beim Klicken auf die Schaltfläche eine Rückfrage angezeigt!


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die Option für Makros.
  • Fehler: Die Rückfrage erscheint nicht.

    • Überprüfe, ob der MsgBox-Befehl korrekt geschrieben ist. Achte auf die Syntax und Vergiss nicht, die Anführungszeichen und Klammern richtig zu setzen.

Alternative Methoden

Eine alternative Methode, um ein Excel VBA Makro schrittweise auszuführen, besteht darin, die InputBox zu verwenden. Du kannst den Benutzer nach einer Bestätigung fragen:

Sub loeschenMitInputBox()
    Dim antwort As String
    antwort = InputBox("Wollen Sie die Daten löschen? (Ja/Nein)")

    If LCase(antwort) <> "ja" Then Exit Sub
    ' Hier kommt dein Makro
End Sub

Diese Methode ermöglicht es dem Benutzer, die Antwort direkt einzugeben.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie Du das Löschen von Daten in einem bestimmten Bereich umsetzen kannst:

Sub loeschenDaten()
    Dim strFrage As String
    strFrage = MsgBox("Sollen die Daten in den Zellen A1 bis A10 wirklich gelöscht werden?" & vbCrLf, _
    vbYesNo + vbQuestion, "Löschen")

    If strFrage = vbNo Then Exit Sub

    Range("A1:A10").ClearContents ' Daten in A1 bis A10 löschen
End Sub

Füge diesen Code in Dein VBA-Modul ein, um die Inhalte in den Zellen A1 bis A10 zu löschen, nachdem der Benutzer bestätigt hat.


Tipps für Profis

  • Nutze vbCritical anstelle von vbQuestion, um die Dringlichkeit der Rückfrage zu erhöhen.
  • Verwende On Error Resume Next, um Fehler während der Ausführung deines Makros zu ignorieren, und stelle sicher, dass Du den Code schrittweise ausführst, um Probleme leichter zu identifizieren.
  • Du kannst auch eine Logik implementieren, die es ermöglicht, die Aktion rückgängig zu machen, falls der Benutzer es sich anders überlegt.

FAQ: Häufige Fragen

1. Kann ich die Rückfrage auf Englisch gestalten? Ja, Du kannst den Text in der MsgBox anpassen:

strFrage = MsgBox("Do you really want to delete the data?" & vbCrLf, vbYesNo + vbQuestion, "Delete")

2. Wie kann ich das Makro schrittweise ausführen? Du kannst den Code mit F8 im VBA-Editor schrittweise ausführen, um zu sehen, wie jede Zeile des Codes funktioniert.

3. Ist dies in allen Excel-Versionen möglich? Ja, die Verwendung von VBA zur Erstellung von Makros ist in den meisten Excel-Versionen möglich, einschließlich Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige