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

Forumthread: VBA, Zwischenblage komplett löschen

VBA, Zwischenblage komplett löschen
19.09.2017 09:57:44
Dieter(Drummer)
Guten Morgen Spezialisten,
ich suche eine VBA Lösung, um die Zwischenablage komplett zu löschen.
Im Netz gefundene Lösungen haben nicht funktioniert, z.B. clipboard.clear etc.
Mit der Bitte um Hilfe, grüßt
Dieter(Drummer)
Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA, Zwischenblage komplett löschen
19.09.2017 10:19:43
UweD
Hallo Dieter
reicht nicht

Application.CutCopyMode = False
?
LG UweD
AW: VBA, Zwischenblage komplett löschen
19.09.2017 10:25:03
Dieter(Drummer)
Danke UweD für Rückmeldung.
Nein, leider reicht das nicht, es passiert garnichts! Gibt es noch andere, funktionierende Lösungen?
Gruß, Dieter(Drummer)
AW: VBA, Zwischenblage komplett löschen
19.09.2017 10:32:06
JoWE
Hallo Dieter,
so vllt:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As  _
String, ByVal lpWindowName As String) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Public Sub Zwischenablage_loeschen()
OpenClipboard FindWindow("xlMain", vbNullString)
EmptyClipboard
CloseClipboard
End Sub

Gruß
Jochen
Anzeige
AW: Leider auch keine Löschung ...
19.09.2017 10:44:44
Dieter(Drummer)
... Danke Jochen für Hilfe, ab er da passiert ebenfalls nichts!
Kann auch nicht ermitteln, warum nicht.
Gruß, Dieter(Drummer)
AW: Leider auch keine Löschung ...
19.09.2017 11:01:21
JoWE
Dieter,
(das passiert alles in einer Excel-Arbeitsmappe)
ich habe mit Strg+C einen markierten Text aus z.B. Zelle A1 in die Zwischenablage kopiert.
Dann zum Test mit Strg+V nach B1 eingefügt
Lasse ich dann den Code laufen, ist die Zwischenablage leer.
Na jedenfalls wird danach mit Strg+V nach C1 nichts mehr eingefügt.
Auch schon die "normale Lösung" probiert?
Excel Menü, Start, nun d.kl. Pfeil rechts neben "Zwischenablage" anklicken, dann "Alle löschen"
Gruß
Jochen
Anzeige
AW: Klappt bei mir leider nicht ...
19.09.2017 11:33:22
Dieter(Drummer)
Hallo Jochen,
ich kann natürlich, wenn ich direkt in die Zwischenablage gehe, unter Löschen, alles löschen. Aber über VBA funktioniert es eben nicht.
Hier ist mal meine Beispielmappe: https://www.herber.de/bbs/user/116359.xlsm
Ich kann nicht erkennen, warum es nicht funktioniert.
Gruß, Dieter(Drummer)
Anzeige
AW: Klappt bei mir leider nicht ...
19.09.2017 12:42:22
JoWE
Hallo Dieter,
mit Deiner Arbeitsmappe klappte es bei mir auch nicht.
Habe dann den Inhalt der Tabelle und den Code in eine neue Mappe kopiert, die Verknüpfung in der neuen Mappe gelöscht und siehe da, schon gings!
Gruß
Jochen
AW: Geht leider bei mir auch nicht ...
19.09.2017 13:47:18
Dieter(Drummer)
Danke Jochen für deine Geduld.
Ich habe es auch so gemacht, wie du und es geht geht bei mir dennoch nicht.
Danke für deine Bemühung.
Gruß, Dieter(Drummer)
Anzeige
AW: Geht leider bei mir auch nicht ...
19.09.2017 13:52:22
JoWE
...
klappt der Code oder die Menü-Aktion denn in einer ganz anderen Mappe?
Gruß
Jochen
AW: Nein, leider auch nicht ...
19.09.2017 14:17:06
Dieter(Drummer)
... auch in anderer Mappe funktioniert er nicht.
Habe eine neue Mappe genommen und in einer anderen, bestehenden Mappe den Code eingefügt.
In beiden Varianten geht es nicht.
Gruß Dieter(Drummer)
Anzeige
jetzt geht's bei mir auch nicht mehr !!!
19.09.2017 14:27:51
JoWE
...
vorhin hatte es mal funktioniert, jetzt nicht mehr
weiß jetzt auch nicht weiter.
Gruß
Jochen
AW: Danke dir dennoch ...
19.09.2017 15:15:58
Dieter(Drummer)
... für deine Bemühungen.
Gruß und einen schönen Tag,
Dieter(Drummer)
Siehe auch meine AW unten, lg Michael
19.09.2017 15:20:48
Michael
Anzeige
Und was ist...
19.09.2017 15:20:13
Michael
Dieter und Jochen,
...wenn wir die Zwischenablage komplett leeren mit einen Nullwert in die Zwischenablage schreiben übersetzen?
Sub a()
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText ""
.PutInClipboard
End With
End Sub
Und schon ist das Windows Clipboard leer...
LG
Michael
Anzeige
AW: leider auch nicht...
19.09.2017 15:35:58
JoWE
Hallo Michael,
...das Makro tut was, aber die Office-Zwischenablage wird nicht geleert.
Stattdessen kommt rechts unten eine gelbe Mitteilung:
"Zwischenablage" "Element wurde nicht der Sammlung hinzugefügt"
da scheint es doch einen Unterschied zw. der Windows-Zwischenablage und der Office-Zwischenablage zu geben?!
Gruß
Jochen
Anzeige
Stimmt...
19.09.2017 15:51:01
Michael
Hallo Jochen,
...Windows und Office Zwischenablage sind zwei verschiedene Dinge; ich hab mich auf die Windows Zwischenablage konzentriert, dürfte mir entgangen sein, dass es sich hier um die Office ZA dreht.
Soweit ich gesehen habe, existiert auf die Office ZA kein VBA-Zugriff (offenbar war das bis Office 2000 irgendwie möglich).
Sorry, dann hab ich auch nichts mehr im Zauberhut...
LG
Michael
Anzeige
AW: Danke Michael ...
19.09.2017 15:59:51
Dieter(Drummer)
... für den Versuch.
Es wundert mich nur, dass es da keine funktionierende Lösung gibt. Nun ja, es ist we es ist.
Gruß, Dieter(Drummer)
evtl. Workaround
19.09.2017 18:34:01
KlausF
Hallo Dieter,
ich bin zwar mit dem Mac unterwegs und kann daher nicht viel
zur Zwischenablage unter Windows und/oder Office sagen, aber ...
kann man nicht einfach als Workaround eine garantiert leere Zelle
im aktiven Sheet auf sich selbst kopieren? Bei mir klappt das. Z.B.:
Sub ZwLeeren()
ActiveSheet.Range("ZZ1").Copy Range("ZZ1")
Application.CutCopyMode = False
End Sub
Oder soll die Lösung auch ausserhalb von Excel funktionieren?
Gruß
Klaus
Anzeige
AW: Das geht auch nicht ...
19.09.2017 19:33:16
Dieter(Drummer)
... Klaus.
Der gesaamte Zwischenspeicher wir so auch nicht gelöscht.
Danke dennoch für Bemühung und
Gruß, Dieter(Drummer)
AW: Stimmt...
19.09.2017 16:25:26
JoWE
Hallo Michael,
wenn's denn dann so ist. Danke für die Mühe.
Gruß
Jochen
Anzeige
Anzeige

Infobox / Tutorial

VBA zur vollständigen Löschung der Zwischenablage in Excel


Schritt-für-Schritt-Anleitung

Um die Zwischenablage in Excel via VBA zu leeren, kannst Du den folgenden Code verwenden. Dieser funktioniert sowohl in 32-Bit- als auch in 64-Bit-Versionen von Excel:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long

Public Sub Zwischenablage_loeschen()
    OpenClipboard FindWindow("xlMain", vbNullString)
    EmptyClipboard
    CloseClipboard
End Sub

Führe diesen Code in einem VBA-Modul aus, um die Excel-Zwischenablage zu leeren.


Häufige Fehler und Lösungen

  1. Fehler: "Element wurde nicht der Sammlung hinzugefügt"

    • Dies geschieht oft, wenn Du versuchst, die Office-Zwischenablage zu leeren. Verwende stattdessen die oben genannte Methode, um die Windows-Zwischenablage zu leeren.
  2. Fehler: Die Zwischenablage wird nicht geleert

    • Stelle sicher, dass Du den Code in einer Excel-Arbeitsmappe ausführst und dass keine anderen Anwendungen die Zwischenablage blockieren.
  3. Code funktioniert nicht in einer bestimmten Mappe

    • Überprüfe, ob das Problem möglicherweise an der speziellen Arbeitsmappe liegt. Kopiere den Inhalt in eine neue Arbeitsmappe, um es erneut zu testen.

Alternative Methoden

Falls die VBA-Methode nicht funktioniert, kannst Du auch die integrierte Funktion von Excel verwenden:

  1. Manuelles Löschen der Zwischenablage

    • Gehe zu "Start" im Excel-Menü, klicke auf den kleinen Pfeil neben "Zwischenablage" und wähle "Alle löschen".
  2. VBA-Workaround mit einer leeren Zelle

    • Kopiere eine garantierte leere Zelle aus dem aktiven Blatt:
Sub ZwLeeren()
    ActiveSheet.Range("ZZ1").Copy Range("ZZ1")
    Application.CutCopyMode = False
End Sub

Praktische Beispiele

  1. Leere die Zwischenablage mit einem Nullwert
    • Verwende den folgenden Code, um die Windows-Zwischenablage auf einen Nullwert zu setzen:
Sub LeereZwischenablage()
    With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText ""
        .PutInClipboard
    End With
End Sub
  1. Zwischenablage automatisch leeren
    • Setze einen Timer, um die Zwischenablage nach einer bestimmten Zeit automatisch zu leeren.

Tipps für Profis

  • Verwende Application.CutCopyMode = False nach dem Kopieren von Daten, um die Zwischenablage zu leeren, bevor Du weitere Daten bearbeitest.
  • Testen in verschiedenen Excel-Versionen: Manchmal kann es Unterschiede geben, insbesondere zwischen 32-Bit und 64-Bit-Versionen von Excel.
  • Nutze die Windows-Zwischenablage: Wenn Du die Windows-Zwischenablage löschen möchtest, stelle sicher, dass Du den richtigen Code verwendest, der für Windows 10 oder 11 optimiert ist.

FAQ: Häufige Fragen

1. Warum funktioniert mein VBA-Code zur Zwischenablade-Löschung nicht?
Es könnte sein, dass Du versuchst, die Office-Zwischenablage zu leeren, was nicht immer möglich ist. Verwende die Windows API, um sicherzustellen, dass Du die richtige Zwischenablage bearbeitest.

2. Gibt es eine Möglichkeit, die Zwischenablage in Excel 64-Bit zu leeren?
Ja, der oben bereitgestellte Code funktioniert in Excel 64-Bit. Achte darauf, die richtigen Deklarationen zu verwenden.

3. Wie kann ich die Zwischenablage automatisch leeren?
Du kannst einen Timer oder eine Schleife einfügen, um die Zwischenablage in festgelegten Intervallen zu leeren. Achte darauf, dass dies nicht zu unerwünschtem Verhalten führt.

4. Gibt es Unterschiede zwischen der Windows- und der Office-Zwischenablage?
Ja, die Windows-Zwischenablage ist unabhängig von der Office-Zwischenablage. Manche VBA-Methoden können nur auf die Windows-Zwischenablage zugreifen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige