chris1312
Goto Top

Outlook 2013 - Kontakte löschen - schützen

Servus und hallo an alle,

ich habe mal eine völlig bescheuerte Frage aber ich glaube einige haben das gleiche Problem.
Ich suche nach einer Lösung Kontakte in Outlook 2013 vor dem Löschen mit der "ENTF-Taste" zu schützen.

Meine Vorstellung ist:
Entf-Taste Drücken und dann kommt nur bei den Kontakten die Frage: "Wollen Sie den Kontakt wirklich löschen?"....

Die Lösung mit "Shift + ENTF" ist mir bereits bekannt aber die ist nicht mein Ziel weil wenn sowas passiert der
Anwender auf die "ENTF" Taste drückt. Ich bin hier auf jeden Fall über jeden Tipp dankbar.

Der Haken ist bereits gesetzt:
"Datei / Optionen / Erweitert / (unter Weitere) ganz unten ist bereits der Haken gesetzt *Zur Bestätigung auffordern, bevor Elemente endgültig gelöscht werden*"

Gruß Chris

Content-Key: 240498

Url: https://administrator.de/contentid/240498

Printed on: April 19, 2024 at 15:04 o'clock

Member: colinardo
Solution colinardo Jun 10, 2014 updated at 19:38:57 (UTC)
Goto Top
Hallo Chris,
Entf-Taste Drücken und dann kommt nur bei den Kontakten die Frage: "Wollen Sie den Kontakt wirklich löschen?"....
mit VBA hätte ich da eine Lösung für Outlook:
ALT-F11 drücken und den folgenden Code in den VBA-Editor unter ThisOutlookSession oder DieseOutlookSitzung einfügen (zur Info: Makros müssen im Sicherheitscenter von Outlook aktiviert sein). Dann auf Speichern klicken, Outlook neu starten und über eine Sicherheitsabfrage vor dem Löschen von Kontakten freuen face-wink
Dim WithEvents ol_ContactItem As ContactItem
Dim WithEvents ol_Explorer As Explorer

Private Sub Application_Startup()
    Set ol_Explorer = ActiveExplorer
End Sub

Private Sub ol_ContactItem_BeforeDelete(ByVal Item As Object, Cancel As Boolean)
    If MsgBox("Möchten sie diesen Kontakt wirklich löschen?", vbYesNo Or vbQuestion) = vbNo Then  
        Cancel = True
    End If
End Sub

Private Sub ol_Explorer_SelectionChange()
    If ol_Explorer.Selection.Count > 0 Then
        If ol_Explorer.Selection.Item(1).Class = olContact Then
            Set ol_ContactItem = ol_Explorer.Selection.Item(1)
        End If
    End If
End Sub
Grüße Uwe
Member: Chris1312
Chris1312 Jun 10, 2014 at 19:38:15 (UTC)
Goto Top
Uwe!

Du bist mein Retter!
Soeben getestet und es funktioniert...

Vielen Dank an dich Uwe!

Gruß Chris
Member: Frank67
Frank67 Jul 24, 2016 at 17:50:43 (UTC)
Goto Top
Hallo Uwe,
coole Lösung Ich verwende den Ansatz auch für Mails...
Leider kommt die Abfrage nur beim Löschen aus der geöfnetten Mail.
Bei Kontakten funktioniert es aus dem geöffneten Kontakt und aus der Liste.
Wo ist der Unterschied, was mache ich falsch?


Option Explicit
Dim WithEvents ol_MailItem As MailItem
Dim WithEvents ol_ContactItem As ContactItem
Dim WithEvents MyExplorer As Explorer

Private Sub Application_Startup()
Set MyExplorer = ActiveExplorer
End Sub

Private Sub MyExplorer_SelectionChange()
If MyExplorer.Selection.count > 0 Then
Select Case MyExplorer.Selection.Item(1).Class
Case olMail
Set ol_MailItem = MyExplorer.Selection.Item(1)
Case olContact
Set ol_ContactItem = MyExplorer.Selection.Item(1)
End Select
End If
End Sub

Private Sub ol_MailItem_BeforeDelete(ByVal Item As Object, Cancel As Boolean)
If MsgBox("Mail wirklich löschen?", vbYesNo Or vbQuestion) = vbNo Then Cancel = True
End Sub

Private Sub ol_ContactItem_BeforeDelete(ByVal Item As Object, Cancel As Boolean)
If MsgBox("Kontakt wirklich löschen?", vbYesNo Or vbQuestion) = vbNo Then Cancel = True
End Sub
Member: colinardo
colinardo Jul 26, 2016 updated at 11:39:11 (UTC)
Goto Top
Hallo @Frank67, Willkommen auf Administrator.de!
Das ist meiner Meinung nach ein Timing-Problem (Bug). Besser du machst das folgendermaßen dann gilt das für alle Objekte die gelöscht werden gleichermaßen:
Dim WithEvents ol_Explorer As Explorer
Dim WithEvents ol_Folder As Folder

Private Sub Application_Startup()
    Set ol_Explorer = ActiveExplorer
End Sub

Private Sub ol_ContactItem_BeforeDelete(ByVal Item As Object, Cancel As Boolean)
    If MsgBox("Möchten sie diesen Kontakt wirklich löschen?", vbYesNo Or vbQuestion) = vbNo Then  
        Cancel = True
    End If
End Sub

Private Sub ol_Explorer_FolderSwitch()
    If Not ol_Explorer.CurrentFolder Is Nothing Then
        Set ol_Folder = ol_Explorer.CurrentFolder
    End If
End Sub

Private Sub ol_Folder_BeforeItemMove(ByVal Item As Object, ByVal MoveTo As MAPIFolder, Cancel As Boolean)
    If Not MoveTo Is Nothing Then
        If MoveTo = ol_Explorer.Session.GetDefaultFolder(olFolderDeletedItems) Then
            If MsgBox("Möchten sie dieses Element wirklich löschen?", vbYesNo Or vbQuestion) = vbNo Then  
                Cancel = True
            End If
        End If
    End If
End Sub
Grüße Uwe

p.s. für die Zukunft erstelle eine neue Frage oder melde dich bei der Person per PM. Das "Übernehmen" von Threads anderer Threadersteller sehen wir hier eigentlich nicht so gerne. Merci.
Member: Frank67
Frank67 Jul 26, 2016 at 15:34:42 (UTC)
Goto Top
Hallo Uwe,
funktioniert einwandfrei.

Vielen Dank.
Frank