Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1580to1584
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

Zwischenablage löschen

Zwischenablage löschen
18.09.2017 19:31:37
Jürgen
Hallo,
bin fast am Verzweifeln,
bin schon seit 2 Tagen am Suchen bei Google..
Ich habe ein Workbook mit 4 Tabellen
Ich kopiere von Tabelle1 zu Tabelle2 einige Werte mit:
Worksheets("Tabelle1").Range("M5:O44").Copy
Worksheets("Tabelle2").Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
zum Schluss will ich nur folgendes kopieren:
z = Range("C1").End(xlDown).Row
Worksheets("Tabelle2").Range("C1:C" & z).Copy
Diese Daten will ich weiter verwenden.
Wenn ich diese Daten in eine Excel Spalte einfüge ist alles ok,
es wird nur die Spalte C eingefügt.
Wenn ich aber die Werte aus dem Zwischenspeicher in eine Word-Datei einfüge
sind da immer noch die 3 Spalten M5:O44 vorhanden...
Wie es aussieht klappt es bei Excel 2016 und bei Excel 2013 nicht, das muss ich aber noch genauer testen...
Allerdings, wenn ich den Zwischenspeicher-Inhalt anzeigen lasse, ist dieser immer gefüllt, ich bekomme ihn einfach nicht gelöscht...
Manuell natürlich ja, es soll aber in einem Makro geschehen...
Routinen wie z.B.
Sub leer()
Dim za_daten As New DataObject
za_daten.GetFromClipboard
za_daten.SetText ""
za_daten.PutInClipboard
End Sub

habe ich alles schon getestet, geht einfach nicht....
Weis jemand einen Rat?
Vielen Dank, Jürgen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwischenablage löschen
18.09.2017 22:37:11
Mullit
Hallo,
am elegantesten per Api...
Option Explicit

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

Public Sub test()
    Call OpenClipboard(0&)
    Call EmptyClipboard
    Call CloseClipboard
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit
Anzeige
AW: Zwischenablage löschen
19.09.2017 07:04:18
Jürgen
Hallo,
Danke für die schnelle Antwort.
Diese Funktion hatte ich auch schon mal irgendwo gesehen und versucht zu testen.
Da gab es aber eine Fehlermeldung und ich hatte es nicht weiter verfolgt.
Nun habe ich nochmals versucht den Fehler zu beheben.
Nachdem was ich gefunden hatte muss man zwischen Declare und Function - PtrSafe schreiben.
Dan wird kein Fehler beim Ausführen angezeigt.
Nur leider befinden sich immer noch die 3 Spalten in dem Zwischenspeicher.
Um meine selektierten Zellen bewegt sich die "Strichel-Linie"
Was kann ich noch tun?
Gruß Jürgen
Anzeige
AW: Zwischenablage löschen
19.09.2017 07:43:21
Werner
Hallo Jürgen,
kann ich nicht nachvollziehen, hab im Moment aber auch nur Excel 2010 zu Verfügung. Damit klappt es mit dem Code. Beim Einfügen der Zwischenablage in ein Word-Dokument wird nur die Spalte C eingefügt.
Hier hast du allerdings nicht sauber referenziert:
Z = Range("C1").End(xlDown).Row
Worksheets("Tabelle2").Range("C1:C" & Z).Copy
Ist es tatsächlich gewünscht, die letzte Zeile im aktiven Blatt zu ermitteln und damit dann einen Bereich aus Blatt 2 zu kopieren? Wenn nein, dann solltest du beim Ermitteln der letzten Zeile auch auf das Blatt 2 referenzieren.
Z = Worksheets("Tabelle2").Range("C1").End(xlDown).Row
Worksheets("Tabelle2").Range("C1:C" & Z).Copy
Das hat aber nichts mit deinem eigentlichen Problem zu tun.
Gruß Werner
Anzeige
AW: Zwischenablage löschen
19.09.2017 08:18:01
Jürgen
Hallo, Werner,
danke für den Hinweis.
Ja, so wie Du es aufgezeigt hast, ist es sauberer...
übrigens, bei Office 2016 was ich noch nutze, tritt dieser Fehler nicht so auf.
Da wird zwar auch die Zwischenablage nicht gelöscht, aber es wird auch nur die Spalte
C, so wie gewünscht, eingefügt.
Wie oben schon geschrieben, soll es aber bei Office 2013 funktionieren.
Gruß Jürgen
AW: Zwischenablage löschen
19.09.2017 12:08:53
Jürgen
Hallo,
habe noch etwas getestet...
Ich habe dabei die Zwischenablage unter START geöffnet,
wenn ich diese leere und mein Makro laufen lasse dann sehe ich einmal die
3 Spalten aus der Tabelle.
nach:
Z = Worksheets("Tabelle2").Range("C1").End(xlDown).Row
Worksheets("Tabelle2").Range("C1:C" & Z).Copy
sind immer noch die 3 Spalten zu sehen.
Wenn ich aber vor:
Z = Worksheets("Tabelle2").Range("C1").End(xlDown).Row
Worksheets("Tabelle2").Range("C1:C" & Z).Copy
dies hier:
MsgBox HoleTextVonZwischenablage
einfüge, dann:
bleiben die 3 Spalten zwar in der Zwischenablage zu sehen aber davor steht dann
der zuletzt ausgewählte Bereich aus Spalte C
Wenn ich daraufhin die Zwischenablage in z.B. WORD einfüge steht dann auch nur die
gewünschte Spalte C mit den jeweiligen Werten. So geht es also,
jetzt muss ich nur noch die Sache mit der msgBox umgehen...
Übrigens, nach nochmaligen Aufruf des Makro werden die Werte in der Zwischenablage auch nicht
mehr, wird diese vielleicht vor dem Start immer gelöscht? Irgendwie...?
Gruß Jürgen
Anzeige
AW: Zwischenablage löschen
19.09.2017 12:02:55
Mullit
Hallo,
Nachdem was ich gefunden hatte muss man zwischen Declare und Function - PtrSafe schreiben.

dann wirst Du eine 64Bit Office-Version haben,... nix gut....
http://www.online-excel.de/excel/singsel.php?f=186
Gruß, Mullit
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige