gibt es eine Möglichkeit, eine MsgBox o.UserForm einzublenden bevor eine Zelle gelöscht wird. Also in der Art: " Soll der Inhalt dieser Zelle wirklich gelöscht werden?"
Für eure Mühe schon mal DANKE!
Gruß
Katja
Sub Zellelöschen()
Dim Mldg, Stil, Titel, Hilfe, Ktxt, Antwort, Text1
Mldg = "Zelle wirklich löschen ?" ' Meldung definieren.
Stil = vbYesNo + vbCritical + vbDefaultButton1 ' Schaltflächen
' definieren.
Titel = "Lösch-Dialogfeld"
Hilfe = "DEMO.HLP" ' Hilfedatei
' definieren.
Ktxt = 1000 ' Kontext für Thema
' definieren.
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt) ' Meldung anzeigen.
' Benutzer hat "Ja"
' gewählt.
If Antwort = vbYes Then
Range("J9:U29").Select
Selection.ClearContents
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "" Then
If Not MsgBox("Wollen Sie die Zelle wirklich löschen?", _
vbYesNoCancel + vbQuestion) = vbYes Then
On Error Resume Next
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
On Error GoTo 0
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case MsgBox("Willst Du die Zelle wirklich ändern?", vbYesNo, "Hallo Katja")
Case vbYes
Exit Sub
Case vbNo
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End Select
End Sub
hallo katja
Trifft es das in etwa ?
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A8"), Target) Is Nothing Then Exit Sub
If IsEmpty(Range("A8")) Then
If MsgBox(prompt:="A8 wirklich löschen? ", Buttons:=vbYesNo) = vbNo Then Application.Undo
End If
End Sub
ransi
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZ As Range
For Each rngZ In Target
If rngZ.Address = "$A$8" Then
Select Case MsgBox("Willst Du die Zelle wirklich ändern?", vbYesNo, "Hallo Katja")
Case vbYes
Exit Sub
Case vbNo
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End Select
End If
Next
End Sub
Sub Stammdaten_0()
Select Case MsgBox("Willst Du die Zelle wirklich ändern?", vbYesNo, "Liebe Kollegin, lieber Kollege")
Case vbYes
Range("B3").Select
Selection.ClearContents
Exit Sub
Case vbNo
With Application
.EnableEvents = False
.EnableEvents = True
End With
End Select
End Sub
Private Sub CommandButton1_Click()
Dim rngZ As Range
For Each rngZ In Selection
If rngZ.Address = "$A$8" Then
Select Case MsgBox("Willst Du die Zelle wirklich löschen?", vbYesNo, "Hallo Katja")
Case vbYes
Selection.Delete
Case vbNo
Exit Sub
End Select
End If
Next
End Sub
Um eine Abfrage einzublenden, bevor eine Zelle gelöscht wird, kannst Du das folgende VBA-Makro verwenden. Dieses Beispiel zeigt, wie Du eine MsgBox anzeigen kannst, die fragt, ob die Zelle wirklich gelöscht werden soll.
ALT + F11, um den VBA-Editor zu öffnen.Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZ As Range
For Each rngZ In Target
If rngZ.Address = "$A$8" Then
Select Case MsgBox("Willst Du die Zelle wirklich löschen?", vbYesNo, "Bestätigung")
Case vbYes
Selection.Delete
Case vbNo
Application.Undo
End Select
End If
Next
End Sub
Fehler: Die MsgBox wird nicht angezeigt, wenn die Zelle gelöscht wird.
Fehler: Die Zelle wird trotz "Nein" gelöscht.
Application.Undo im richtigen Kontext verwendet wird. Es muss nach der Entscheidung in der MsgBox aufgerufen werden.Falls Du keine VBA-Kenntnisse hast, gibt es alternative Methoden, um sicherzustellen, dass Zellen nicht versehentlich gelöscht werden:
Hier sind einige praktische Beispiele für die Verwendung des Codes:
If-Bedingung erweiterst.If Not Intersect(Target, Range("A8,B8,C8")) Is Nothing Then
' Deine MsgBox und Logik hier
End If
Select Case: Der Einsatz von Select Case macht den Code übersichtlicher, besonders wenn Du mehrere Optionen abfragen möchtest.1. Wie kann ich das Makro nur für eine bestimmte Zelle aktivieren?
Du kannst die If-Bedingung im Code anpassen, um nur für die gewünschte Zelle zu funktionieren, z.B. If Target.Address = "$A$8" Then.
2. Was passiert, wenn ich das Makro nicht im richtigen Modul einfüge? Das Makro wird nicht ausgeführt, da es nicht mit den Ereignissen des Arbeitsblatts verknüpft ist. Stelle sicher, dass Du es im spezifischen Arbeitsblatt-Modul einfügst.
3. Gibt es eine Möglichkeit, die MsgBox anzupassen?
Ja, Du kannst den Text und die Schaltflächen der MsgBox nach Deinen Wünschen anpassen, indem Du die Parameter in der MsgBox-Funktion änderst.