Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zwischenablage löschen per VBA

Zwischenablage löschen per VBA
15.03.2005 08:59:32
Firat
Hallo zusammen,
ich habe ein Makro geschrieben, was eine Datei öffnet und dessen Inhalt kopiert. Anschliessend soll die Datei geschlossen werden und der kopierte Inhalt in ein andere Datei eingefügt werden.
Nun frag er aber immer wieder wenn die Datei geschlossen wird, ob die Zwischenablage gelöscht werden soll oder nicht? Das führt dazu, dass das Programm nicht mehr flüssig läuft.
Mein Ziel ist es diese Abfrage zu verhindern, dabei würde ich gerne die Zwischenab lage vorher löschen, weiss aber nicht mit welchem Befehl das geht!?
Danke im vorraus...
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwischenablage löschen per VBA
15.03.2005 09:24:14
Domke,
Hallo,
ich einfachsten Fall kopiere doch den Inhalt einer leeren Zelle in die Zwischenablage. Dann wird Excel beim Schließen (wahrscheinlich) nicht mehr fragen. Wenn doch, melde Dich einfach noch einmal!
Gruß
Frank.
AW: Zwischenablage löschen per VBA
15.03.2005 09:46:53
Nepumuk
Hallo Frank,
die Windows - Zwischenablage so:


Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As StringByVal lpWindowName As StringAs Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As LongAs Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Public Sub loeschen_Zwischenablage()
    OpenClipboard FindWindow("XLMAIN", vbNullString)
    EmptyClipboard
    CloseClipboard
End Sub


Die Office - Zwischenablage in Excel2000 so:


Option Explicit
Public Sub loeschen_Zwischenablage_Office()
    Dim myCommandbar As CommandBar, myCommandBarButton As CommandBarButton
    Set myCommandbar = Application.CommandBars("Clipboard")
    If Not myCommandbar Is Nothing Then
        Set myCommandBarButton = myCommandbar.FindControl(ID:=3634)
        If Not myCommandBarButton Is Nothing Then If myCommandBarButton.Enabled Then myCommandBarButton.Execute
    End If
    Set myCommandbar = Nothing
    Set myCommandBarButton = Nothing
End Sub


Gruß
Nepumuk
Anzeige
AW: Zwischenablage löschen per VBA
15.03.2005 09:38:08
UweD
Hallo
so z.B.

Sub clear_clipboard()
' Unter Extras, Verweise muss dieser Verweis muß gesetzt werden
' "Microsoft Forms 2.0 Object Library"
Dim NeuData As DataObject
Set NeuData = New DataObject
'löscht Zwischenablage
NeuData.SetText ""
NeuData.PutInClipboard
End Sub

Gruß UweD
Anzeige
Es klappt...
15.03.2005 09:49:38
Firat
Hallo,
also ich habe wie Domke, Frank es vorgeschlagen hatte einfache eine leere Zelle kopiert. dann fragt er nicht mehr danach...
Nichtsdestotrotz, habe ich auch das kleine Makro von UweD ausprobiert. Leider hatte er dort Probleme mit der Kompilation...bei der Zeile " Dim NeuData As DataObject" ...
danke..für eure Hilfe...
Anzeige
AW: Es klappt...
15.03.2005 11:57:35
UweD
Hallo
hast du denn, wie im Programmkopf angegeben den Verweis gesetzt?
Gruß UD
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zwischenablage in Excel per VBA leeren


Schritt-für-Schritt-Anleitung

Um die Zwischenablage in Excel per VBA zu leeren, kannst du die folgenden Schritte ausführen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel mit ALT + F11.

  2. Erstelle ein neues Modul, indem du im Menü auf Einfügen und dann auf Modul klickst.

  3. Füge den folgenden VBA-Code in das Modul ein:

    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 leeren_Zwischenablage()
        OpenClipboard 0
        EmptyClipboard
        CloseClipboard
    End Sub
  4. Schließe den VBA Editor und kehre zu Excel zurück.

  5. Um das Makro auszuführen, gehe zu Entwicklertools > Makros, wähle leeren_Zwischenablage und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Compile error: User-defined type not defined"

    • Lösung: Stelle sicher, dass du die Microsoft Forms 2.0 Object Library in den Verweisen aktiviert hast. Gehe dazu auf Extras > Verweise im VBA-Editor und aktiviere das Kontrollkästchen.
  • Fehler: Zwischenablage wird nicht geleert

    • Lösung: Überprüfe, ob die Windows-Zwischenablage geöffnet ist. In einigen Fällen kann es notwendig sein, die Excel-Anwendung zu schließen und neu zu starten.

Alternative Methoden

Eine einfache Möglichkeit, die Excel-Zwischenablage zu leeren, ist das Kopieren des Inhalts einer leeren Zelle:

  1. Wähle eine leere Zelle aus.
  2. Drücke STRG + C, um den Inhalt der leeren Zelle in die Zwischenablage zu kopieren.
  3. Schließe deine Datei wie gewohnt. Excel fragt dann nicht mehr nach der Zwischenablage.

Eine andere Möglichkeit ist die Verwendung des folgenden VBA-Codes:

Sub clear_clipboard()
    Dim NeuData As DataObject
    Set NeuData = New DataObject
    NeuData.SetText ""
    NeuData.PutInClipboard
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Zwischenablage in verschiedenen Szenarien leeren kannst:

  • Beispiel 1: Wenn du ein Makro hast, das Daten kopiert und in eine andere Datei einfügt, füge am Ende des Makros den Aufruf leeren_Zwischenablage hinzu, um die Zwischenablage zu leeren.

  • Beispiel 2: Um die Abfrage beim Schließen einer Datei zu vermeiden, kopiere zuerst den Inhalt einer leeren Zelle und führe dann dein Haupt-Makro aus.


Tipps für Profis

  • Nutze die Funktion OpenClipboard in Kombination mit EmptyClipboard, um eine fehlerfreie Handhabung der Windows-Zwischenablage zu gewährleisten.
  • Du kannst die Funktion leeren_Zwischenablage in anderen Makros problemlos wiederverwenden, um die Handhabung der Zwischenablage zu optimieren.
  • Überlege, ob du auch die Office-Zwischenablage leeren möchtest, indem du den CommandBar-Ansatz von Nepumuk verwendest.

FAQ: Häufige Fragen

1. Wie lösche ich die Zwischenablage in Excel?
Du kannst die Zwischenablage in Excel mit VBA leeren, indem du die oben beschriebenen Makros verwendest.

2. Wo finde ich die Option, um die Windows-Zwischenablage zu leeren?
Das Leeren der Windows-Zwischenablage erfolgt üblicherweise über VBA, wie im Tutorial beschrieben, oder durch das Kopieren einer leeren Zelle in Excel.

3. Funktioniert das auch in älteren Excel-Versionen?
Ja, die beschriebenen Methoden funktionieren in den meisten Versionen von Excel, einschließlich Excel 2000. Achte darauf, den richtigen Referenzverweis im VBA-Editor zu setzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige