Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1508to1512
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zwischenspeicher leeren bei Mappe schliessen

Zwischenspeicher leeren bei Mappe schliessen
18.08.2016 20:06:13
Dieter(Drummer)
Guten Abend VBA Spezialisten,
beim schliessen der Mappe soll der ganze Zwischenspeicher geleert werden. Dies mache ich mit folgendem Code, der in "DieseArbeitsmappe" liegt. Warum leert sich dennoch der Zwischenspeicher nicht?:
  • 
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CutCopyMode = False
    End Sub
    

  • Mit der Bitte um Hilfe.
    Gruß, Dieter(Drummer)

    10
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zwischenspeicher leeren bei Mappe schliessen
    18.08.2016 20:12:05
    Hajo_Zi
    Hallo Dieter,
    in meiner Datei kann ich das nicht nachvollziehen.

    AW: Zwischenspeicher leeren bei Mappe schliessen
    18.08.2016 20:17:54
    Dieter(Drummer)
    Hallo Hajo,
    Danke für Rückmeldung. In meiner Datei funktioniert es aber nicht.
    Gruß, Dieter(Drummer)
    AW: Zwischenspeicher leeren bei Mappe schliessen
    18.08.2016 20:31:24
    Werner
    Hallo Dieter,
    versuch mal
    Dim oData As DataObject
    Set oData = New DataObject
    oData.SetText ""
    oData.PutInClipboard
    
    Da wird ein Leerer ins Clipboard geschrieben und dieses somit geleert.
    Solltest du eine Fehlermeldung bekommen dann liegt das daran, dass der Verweis auf die "Microsoft Forms 2.0 Object Library" nicht gesetzt ist. Dann einfach mal im Makroeditor eine leere Userform anlegen, dann wird der Verweis automatisch gesetzt. Die Userform kannst du dann wieder löschen. Beim Speichern der mappe wird der gesetzte Verweis mit gespeichert.
    Gruß Werner
    Anzeige
    AW: Zwischenspeicher leeren bei Mappe schliessen
    18.08.2016 20:44:31
    Dieter(Drummer)
    Hallo Werner,
    Danke für Rückmeldung. Ich habe deinen Code jetzt unter "DieseArbeitsnappe" gesetzt, es funtioniert dennoch nicht. "Microsoft Forms 2.0 Object Library" hatte ich gesetzt:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim oData As DataObject
    Set oData = New DataObject
    oData.SetText ""
    oData.PutInClipboard
    'Application.CutCopyMode = False
    End Sub
    

    Gruß, Dieter(Drummer)
    AW: Zwischenspeicher leeren bei Mappe schliessen
    18.08.2016 20:52:34
    Werner
    Hallo Dieter,
    pack den Code doch mal in ein Modul und lass ihn laufen. Schau dann mal nach ob das Clipboard geleert ist. Wenn ja dann hängt es wohl mit dem Before Close Event zusammen.
    Gruß Werner
    Anzeige
    AW: Zwischenspeicher leeren bei Mappe schliessen
    18.08.2016 21:06:30
    Dieter(Drummer)
    Hallo Werner,
    habe es auch versucht und klappt auch nicht. Kann man wohl nichts machen.
    Danke für deine Hilfe.
    Gruß, Dieter(Drummer)
    AW: Gerne auch wenn ich nicht helfen konnte.
    18.08.2016 21:11:33
    Werner
    Hallo Dieter,
    ich stell mal auf offen, vielleicht fällt ja noch jemandem was ein. Interessiert mich aus.
    Gruß Werner
    AW: Zwischenspeicher leeren bei Mappe schliessen
    18.08.2016 20:22:28
    Dieter(Drummer)
    Hallo Hajo,
    hier ist mal meine Testdatei. Über den grünen Button wird ein Makro aufgerufen, dass eine Text kopiert, also in den Zwischenspeicher einfügt. Beim schliessen der Datei wird er nicht geleert.
    Gruß, Dieter(Drummer)
    https://www.herber.de/bbs/user/107699.xlsm
    Anzeige
    AW: Zwischenspeicher leeren bei Mappe schliessen
    18.08.2016 21:22:12
    Nepumuk
    Hallo,
    im Modul "DieseArbeitsmappe":
    Option Explicit

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Call ClearClipboard
    End Sub

    In einem Standardmodul:
    Option Explicit

    Private Declare PtrSafe Function OpenClipboard Lib "user32.dll" ( _
        ByVal hwnd As LongPtr) As Long
    Private Declare PtrSafe Function EmptyClipboard Lib "user32.dll" () As Long
    Private Declare PtrSafe Function CloseClipboard Lib "user32.dll" () As Long

    Public Sub ClearClipboard()
        Call OpenClipboard(Application.hwnd)
        Call EmptyClipboard
        Call CloseClipboard
    End Sub


    Gruß
    Nepumuk
    Anzeige
    AW: Zwischenspeicher leeren bei Mappe schliessen
    18.08.2016 21:35:06
    Dieter(Drummer)
    Danke Nepumuk,
    es funktioniert. Der Zwischenspeicher wird aber erst geleert, wenn Excel komplett geschlossen wird und NICHT, wenn nur die Datei geschlossen wird.
    Danke und noch einen schönen Abend.
    Gruß, Dieter(Drummer)

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige