Live-Forum - Die aktuellen Beiträge
Datum
Titel
02.12.2024 13:15:39
02.12.2024 12:41:41
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

Nachfrage bevor löschen

Nachfrage bevor löschen
14.04.2005 14:38:47
Katja
Hallo,
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

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nachfrage bevor löschen
14.04.2005 15:09:42
Fritz
Hi Katja,
Ja, die gibt es.
z.B. MsgBox:

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

Fritz
Anzeige
AW: Nachfrage bevor löschen
14.04.2005 15:56:25
Luc
Hallo Katja & Fritz,
dieses Makro setzt voraus, dass es immer aufgerufen wird, bevor eine Zelle gelöscht wird. Ich glaube, das kann man so wohl kaum voraussetzen. Automatisch kann das nur mit VBA-Ereignisprozeduren fkt. Aber, wenn man sowas installiert, sollte man VBA-Kenntnisse haben. Deshalb nur noch soviel: Da es kein Arbeitsblatt-Ereignis BeforeChange gibt, muss man sich mit den Ereignissen SelectionChange und Change begnügen. Bevor man manuell etwas ändern kann, muss man ja erst die Zelle auswählen, was das erstere Ereignis auslöst. In der zugehörigen Prozedur muss der Wert der Zelle in einer globalen Variablen "gemerkt" wdn. Wenn dann die Zelle geändert wird, wird das letztere Ereignis ausgelöst. In der zugehörigen Prozedur wird die MsgBox mit der Frage gestartet (Schalter Ja/Nein, es können außerdem alter und neuer Wert der Zelle angegeben wdn) und bei Nein der alte Wert wieder in die Zelle zurückgeschrieben und der neue somit verworfen. Bei Ja bleibt der neue Wert stehen.
Viel Erfolg, falls ihr es selbst ausprobieren wollt
Gruß Luc :-?
Anzeige
AW: (Luc) Bahnhof
14.04.2005 16:16:24
Katja
Erstmal Danke für die Antworten, muß sie erstmal ausprobieren.
(Für Luc: Also ich versteh nur "Bahnhof"!? Gibt es denn eine andere Lösung?
Gruß
Katja
AW: (Luc) Bahnhof
14.04.2005 16:33:19
ANdreas
Hallo Katja,
hier mal ein Lösungsansatz, Code einfügen in das Modul des entsprechenden Tabellenblattes:

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

Gruß
Andreas
Anzeige
AW: (Luc) Bahnhof
14.04.2005 16:37:54
Herbert
Hi,
damit man mit einem Makro auf etwas reagieren kann, muss es einen Auslöser geben, man sagt dazu in VBA Ereignis. Beim Löschen einer Zeile oder Spalte tritt das aber erst ein,
wenn das Löschen schon passiert ist. Besser verständlich?
Es gibt dafür zwar auch eine Lösung, aber die setzt schon advanced programming voraus,
soll heißen eine einfache Lösung, die du auch bei dir implementieren kannst, gibts nicht.
mfg Herbert
AW: (Luc) Bahnhof
14.04.2005 16:43:39
Andi
Hi, Luc's Bahnhof könnte man zB so "übersetzen":

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

Schönen Gruß,
Andi
Anzeige
AW: Danke
14.04.2005 16:52:54
Katja
Danke euch allen, werde mal alles ausprobieren.
Wenn es nicht klappt melde ich mich nochmal.
Gruß
Katja
AW: Nachfrage bevor löschen
14.04.2005 18:50:49
Katja
Hallo,
also ich bekomme nur die letzte Möglichkeit zum laufen.
Ich kenne mich mit VBA auch nicht gut aus.
Desweiteren würde es mir durchaus reichen, wenn ich nur eine bestimmte Zelle damit versehen könnte, z.b. A8.
Könntet ihr mir nochmals helfen bitte?
Gruß
Katja
AW: Nachfrage bevor löschen
14.04.2005 19:20:19
ransi


      
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 


Anzeige
AW: Nachfrage bevor löschen
14.04.2005 19:24:57
Willi
Salü Katja
Probier es mit folgendem Makro:

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

Gruss Willi
AW: Nachfrage bevor löschen
14.04.2005 21:36:28
Hans
Hallo Willi, hallo Excel-Fans,
der Vorschlag von Willi funktioniert bei mir ganz prima, nur wenn ich die entsprechenden Feldinhalte mit Button über eine Makrofunktion lösche fragt er zwar ab, aber die Daten sind trotz "abbruch" oder "nein" verloren. Kann man das anpassen?
Gruß
Hans
Anzeige
AW: Nachfrage bevor löschen
14.04.2005 22:28:04
Luc
Hallo Hans,
dann geht's wirklich nur so wie ich es in meinem Beitrag geschildert habe. Das fkt aber auch nur, wenn das Makro die Zelle vor dem Löschen selektiert hat und die events in diesem Moment enabled sind. In allen anderen Fällen wüsste ich momentan keine Lösung.
Hallo Katja,
mir war schon klar, dass du das wohl nicht verstehen wirst. Deshalb habe ich ja deinen ersten Unterstützer mit angesprochen. Der sollte damit angeregt wdn, nach praktikableren Wegen zu suchen. Hier wollen ja alle was lernen! Es kommt des Öfteren vor, dass für ein Problem keine einfache Lösung (z.B. mit Formeln) existiert. Dafür gibt's dann VBA und das teilt sich natürlich auch in viele Komponenten. Kaum einer wird alles können. Das dauert nämlich durchaus Jahre, aber damit anfangen muss man, wenn man wirklich in dieser Richtung Fähigkeiten erwerben will.
Gruß an alle, die sich so wacker geschlagen haben, mit oder ohne meine Anmerkungen ein funktionables Programm zustande zu bringen. So hatte ich mir das gedacht.
Luc :-?
Anzeige
AW: Nachfrage bevor löschen
Hans
Hallo zusammen,
ich habe Teile das Codes vonAndi genutzt und folgende Lösung über Makro für mich gefunden:

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

In diesem Fall wird über den Button "Daten auf 0 setzen" eine Abfrage eingeblendet die über ja nein in diesem Falle das Feld "B3" bearbeitet. Ich hoffe die Sache hat keinen Haken :-)Danke an alle für die Anregungen.
herzliche Grüsse
Hans
Anzeige
AW: Nachfrage bevor löschen
14.04.2005 22:40:53
Willi
Salü Hans
Dann muss du das Ueberprüfen in dein Makro aufnehmen. Z.B.

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

Gruss
Willi
AW: Nachfrage bevor löschen
14.04.2005 23:03:39
Hans
Tschuldige Willi,
ich hatte zwischenzeitlich die Forumsübersicht nicht mehr aktualisiert. Insofern hätte ich mir vielleicht Arbeit sparen können. Werde Deinen Vorschlag gleich checken.
Danke
Hans
Anzeige
AW: Hat geklappt
15.04.2005 15:24:26
Katja
Hallo allezusammen,
das was ich suchte, war dabei u. funktioniert bei mir!!!!
Danke nochmals an alle!!!!
Gruß
Katja

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge