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

Forumthread: MsgBox YesNo

MsgBox YesNo
12.01.2004 15:26:46
Glen
Hallo liebe Forumbesucher
Ich habe ein Makro aufgezeichnet, dass bei klicken auf die Schaltfläche einen gewissen Bereich der mit Daten versorgt ist, löscht. Nun möchte ich gerne, dass eine MsgBox beim draufklicken des Löschbuttons vorher nochmals fragt:
"Daten entgültig löschen?" und dies mit ja (dann alles löschen) und nein (dann nichts löschen) bestätigt werden kann.
Erreicht habe ich mit meinen bescheidenen VBA-Versuchen lediglich, dass die MsgBox mit dem Text und den Ja,Nein Schaltflächen erscheint. Kann mir beim ergänzen der Funktion hier bitte jemand helfen?
So schaut ein mein Beispiel aus:

Sub Schaltfläche2_BeiKlick()
Dim Var As Integer
Var = MsgBox("Daten entgültig löschen?", (vbYesNo))
Range("A7:G20").Select
Range("G20").Activate
Selection.ClearContents
Range("A7").Select
End Sub

Grüsse
Glen
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox YesNo
12.01.2004 15:32:41
andif
Hallöchen,
die MsgBox gibt bei Klick auf Ja oder Nein einen Wert zurück. Den kannst du abfragen.
If Var = vbYes Then
.....
Else
....
Geht auch andersherum mit If Var = vbNo Then .....
Hoffe die Infos reichen aus.
Gruß
andi
AW: MsgBox YesNo
12.01.2004 15:33:40
Roland Hochhäuser
Hallo Glen,
einfach so:

Sub Schaltfläche2_BeiKlick()
If MsgBox("Daten entgültig löschen?", vbYesNo) = 6 Then
Range("A7:G20").ClearContents
End If
End Sub

Gruß
Roland
Anzeige
AW: MsgBox YesNo
12.01.2004 15:34:28
soendi
Hallo Glen!

Sub Schaltfälche2_BeiKlick()
If MsgBox("Daten wirklich löschen?", vbYesNo + vbQuestion, _
"Frage") = vbYes Then GoTo Fortfahren Else GoTo EndeMakro
Fortfahren:
Range("A7:G20").Select
Range("G20").Activate
Selection.ClearContents
Range("A7").Select
EndeMakro:
End Sub


mfg
soendi
Anzeige
sondi's Version läuft: MsgBox YesNo
12.01.2004 15:49:28
Glen
Erst mal allen herzlichen Dank für die schnellen Antworten!
Andi: für mich als Leie zu unverständlich (nur Makrorecorder)bei deiner Antwort verstehe ich nur Bahnhof :-)
Roland: bei "nein" wird trotzdem gelöscht.
soendi: Dir speziellen Dank! das war es was ich suchte und es läuft einwandfrei.
Grüsse
Glen
Anzeige
danke für die rückmeldung :-) geschlossen, O.T.
12.01.2004 15:54:58
soendi
.
AW: sondi's Version läuft: MsgBox YesNo
12.01.2004 15:55:10
Roland Hochhäuser
Glen, dann hast du nicht richtig abgeschrieben, es geht auch mit folgendem Einzeiler

Sub Schaltfläche2_BeiKlick()
If MsgBox("Daten entgültig löschen?", vbYesNo) = 6 Then Range("A7:G20").ClearContents
End Sub

Gelöscht wird bei ja der Bereich "A7:G20".
Anzeige
AW: sondi's Version läuft: MsgBox YesNo
12.01.2004 16:06:14
soendi
hallo roland!
dafür sieht meine box schöner aus :-))
mfg
</soendi>
Sorry Roland! hast recht: MsgBox YesNo
12.01.2004 16:08:16
Glen
Deine Variante funktioniert genau so gut!
Danke und Gruss
Glen :-)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

MsgBox YesNo in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine MsgBox mit Ja/Nein-Optionen in Excel VBA zu erstellen, folge diesen Schritten:

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

  2. Füge ein neues Modul hinzu, indem du im Projekt-Explorer mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere und füge den folgenden VBA-Code in das Modul ein:

    Sub Schaltfläche2_BeiKlick()
       Dim Var As Integer
       Var = MsgBox("Daten entgültig löschen?", vbYesNo)
       If Var = vbYes Then
           Range("A7:G20").ClearContents
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu deinem Excel-Arbeitsblatt zurück.

  5. Verbinde die Subroutine mit einem Button, um die MsgBox bei einem Klick anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: Bei Klick auf "Nein" werden die Daten trotzdem gelöscht.

    • Lösung: Stelle sicher, dass die Abfrage korrekt implementiert ist. Der If-Befehl muss sicherstellen, dass der Löschbefehl nur ausgeführt wird, wenn vbYes zurückgegeben wird.
  • Fehler: Die MsgBox erscheint nicht.

    • Lösung: Überprüfe, ob das Makro richtig mit einem Button verknüpft ist und dass Makros in den Excel-Optionen aktiviert sind.

Alternative Methoden

Es gibt verschiedene Ansätze zur Verwendung von MsgBox in Excel VBA:

  1. Mit zusätzlichen Optionen: Du kannst die MsgBox mit einem Titel und einem Symbol gestalten:

    If MsgBox("Daten wirklich löschen?", vbYesNo + vbQuestion, "Frage") = vbYes Then
       Range("A7:G20").ClearContents
    End If
  2. Verwendung von GoTo für die Steuerung des Programmflusses:

    Sub Schaltfläche2_BeiKlick()
       If MsgBox("Daten wirklich löschen?", vbYesNo) = vbYes Then
           GoTo Fortfahren
       Else
           GoTo EndeMakro
       End If
    Fortfahren:
       Range("A7:G20").ClearContents
    EndeMakro:
    End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel zur Verwendung der MsgBox in einem Makro:

Sub DatenLöschen()
    If MsgBox("Möchten Sie die Daten wirklich löschen?", vbYesNo + vbQuestion, "Daten löschen") = vbYes Then
        Sheets("Tabelle1").Range("A1:B10").ClearContents
    End If
End Sub

Verwende dieses Beispiel, um eine Bestätigung zu erhalten, bevor du Daten in einem bestimmten Bereich löschst.


Tipps für Profis

  • Benutzerdefinierte Nachrichten: Nutze die Möglichkeit, den Text der MsgBox anzupassen, um die Benutzererfahrung zu verbessern.
  • Kombination mit anderen Funktionen: Integriere die MsgBox in komplexere Makros, um den Benutzer bei verschiedenen Entscheidungen zu unterstützen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Probleme beim Ausführen des Codes zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Rückgabewerte der MsgBox verwenden?
Die MsgBox gibt unterschiedliche Werte zurück: vbYes (6) und vbNo (7). Du kannst diese Werte in einer If-Anweisung abfragen.

2. Kann ich die MsgBox auch ohne ein Makro verwenden?
Nein, die MsgBox ist Teil von VBA und kann nur in einem Makro verwendet werden. Du kannst jedoch eine Schaltfläche in deiner Excel-Oberfläche erstellen, die das Makro ausführt.

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