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

Copy / Paste blockiert

Copy / Paste blockiert
17.08.2022 16:55:13
Dieter
Moin aus Hamburg,
das Kopieren von zwischen zwei Blättern derselben Arbeitsmappe funktioniert nicht mehr:
- Markieren mit Maus
- Ctrl-C oder über rechte Maustaste
- Wechsel zum Zielblatt
- Ctrl-V oder rechte Maustaste (Einfügeoptionen ausgeblendet) erfolglos
- Quell- und Zielblatt sind beide ungeschützt
Allerdings funktioniert das Kopieren und Einfügen zwischen zwei Blättern über die Bearbeitungsleiste. Das Kopieren und Einfügen innerhalb desselben Blattes funktioniert weiterhin uneingeschränkt, ebenso zwischen der betroffenen und einer zweiten Arbeitsmappe.
Weder ein Neustart der Arbeitsmappe noch ein Neustart des Computers beseitigen diesen Fehler.
Dieser Fehler ist erst aufgetaucht, nachdem ich ein Makro verwende, das bei verschiedenen Gelegenheiten aufgerufen wird. Ein Blockieren dieses Makros durch ein'Exit Sub' gleich zu Beginn hilft auch nicht. Ich vermute, dass sich, warum auch immer, eine grundsätzliche Einstellung der betroffenen Arbeitsmappe geändert hat.
Hier der Code des verdächtigen Makros mit vielem Dank vorab für Eure Hilfe:

Sub Fil_BldImgFilLst()
'2022-08-17
'adjusts the current list with filenames and time stamps to the
'current number of active image files and generates a list with
'the current filenames and time stamps
'Exit Sub
'declarations
Dim ImgLstSiz As Integer 'existing entries plus blanks
Dim TgtRng As Range 'target range
Dim DelRows As Integer 'rows to delete
Dim RefRow As Integer 'reference row for deletion and insertion of rows
Dim ImgDir As String 'folder with the image files
Dim ImgFilNamExt As String 'extension of image file names
Dim ImgFilNbr 'number of image files
Dim I As Integer 'loop counter
'unprotect worksheet 'Fil'
ThisWorkbook.Sheets("Fil").Unprotect
'read variables
ImgLstSiz = ThisWorkbook.Sheets("Fil").Range("Fil_ImgLstSiz").Value
'clear file name list and time stamp list
Set TgtRng = ThisWorkbook.Sheets("Fil").Range("Fil_ImgLst")
For I = 1 To ImgLstSiz
TgtRng(I, 1).Value = ""
TgtRng(I, 13).Value = ""
Next I
'reduce empty list to 10 rows
DelRows = ImgLstSiz - 10 'rows to delete
RefRow = ThisWorkbook.Sheets("Fil").Range("Fil_ImgLstStrt").Value + 5
For I = 1 To DelRows
ThisWorkbook.Sheets("Fil").Rows(RefRow).Delete
Next I
'read current path of actual image files and current extension for image files
ImgDir = ThisWorkbook.Sheets("Fil").Range("Fil_ActImgDir").Value
ImgFilNamExt = ThisWorkbook.Sheets("Fil").Range("Fil_ImgFilNamExt").Value
'number of existing image files
Dummy = Dir(ImgDir & "*" & ImgFilNamExt)
ImgFilNbr = 0
Do While Dummy  ""
ImgFilNbr = ImgFilNbr + 1
Dummy = Dir()
Loop
    'insert required number of empty rows and paste formulas to these rows
For I = 1 To ImgFilNbr
ThisWorkbook.Sheets("fil").Activate
ActiveSheet.Rows(RefRow & ":" & RefRow).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveSheet.Range((RefRow - 1) & ":" & (RefRow - 1)).Select
Selection.Copy
ActiveSheet.Range("A" & RefRow).Select
ActiveSheet.Paste
Next I
'fill in file names
Set TgtRng = ThisWorkbook.Sheets("Fil").Range("Fil_ImgLst")
Dummy = Dir(ImgDir & "*" & ImgFilNamExt)
I = 1
Do While Dummy  ""
TgtRng(I, 1).Value = Dummy
Dummy = Dir()
I = I + 1
Loop
'fill in time stamps
Set TgtRng = ThisWorkbook.Sheets("Fil").Range("Fil_ImgLst")
ImgDir = ThisWorkbook.Sheets("Fil").Range("Fil_ActImgDir").Value
I = 1
Do While TgtRng(I, 1).Value  ""
TimStmp = FileDateTime(ImgDir & TgtRng(I, 1).Value)
TgtRng(I, 13).Value = "'" & TimStmp
I = I + 1
Loop
'release set variables
Set TgtRng = Nothing
'protect worksheet 'Fil'
ThisWorkbook.Sheets("Fil").Protect
End 

Sub


		

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy / Paste blockiert
17.08.2022 17:00:53
Nepumuk
Hallo Dieter,
lade mal die Mappe hoch. Die Daten darin kannst du alle löschen, aber nicht komplette Tabellenblätter.
Gruß
Nepumuk
AW: Copy / Paste blockiert
17.08.2022 17:23:01
Dieter
Moin Nepumuk,
die Arbeitsmappe ist über 12 KB groß und enthält eine Menge von Programmcode, den ich nicht veröffentlichen will. Ein Löschen des Datenanteils wird auch nicht helfen, weil es dann nichts Sinnvolles mehr zum Testen gibt.
Vielleicht geht es auch so:
Im Forum habe ich inzwischen den Beitrag "VBA blockiert copy and paste von MRInterNETT vom 09.09.2014 21:16:12" gefunden, der ein ähnliches Phänomen beschreibt. Hier wird ein Zusammenhang mit dem Ein- und Ausblenden von Rollbalken beschrieben, den ich nicht ganz verstehe.
Dieses Ein- und Ausblenden per Makro zusammen mit dem Wechsel zwischen Arbeitsblättern verwende ich ebenfalls, ohne dass es bisher Probleme gegeben hat.
Vielleicht kannst Du mir mit einer Erklärung hierzu weiterhelfen?
Vielen Dank
Dieter
Anzeige
AW: Copy / Paste blockiert
17.08.2022 17:31:17
Nepumuk
Hallo Dieter,
wenn du im Activate- / Deactivate-Event einer Tabelle eine Zelle änderst wird die Office-Zwischenablage gelöscht.
Mehr kann ich nicht sagen, da ich deinen Code nicht kenne.
Gruß
Nepumuk
AW: Copy / Paste blockiert
21.08.2022 12:58:57
Dieter
Moin Nepumuk,
Dein Hinweis hat mir geholfen, die Ursache einzukreisen. Die Situation scheint so auszusehen:
Jedes meiner Arbeitsblätter hat eine 'Worksheet_Activate()' Routine. Wenn ich Dich richtig verstanden habe, ist die das event, das den Inhalt der Zwischenablage löscht, die mir dann zum Einfügen auf dem aktivierten Arbeitsblatt nicht mehr zur Verfügung steht. Das deckt sich mit dem beobachteten Fehler.
Eine mögliche Lösung stelle ich mir so vor:
- Jedem Worksheet ein zusätzliches 'Worksheet_Deactivate()' zuordnen
- Darin den Inhalt der Zwischennablage in eine 'globale Variable' retten
- 'global': Variable bleibt außerhalb des 'erzeugenden Makros' erhalten
- Mit dem nächsten 'Worksheet_Activate()' Variable in Zwischenablage zurückholen
Meine Fragen dazu:
- Wo und wie diese 'globale Variable' dauerhaft definieren?
- In 'Workbook_Open()' mit Dim ... As?
- Gleiches für die Inhalt der Zwischenablage als globales Datenobjekt?
- Zuweisung des Inhalts an das Datenobjekt bekannt
- Wie das Datenobjekt in die Zwischenablage zurückschreiben?
- Jeder Typ Datenobjekt, so auch mit Strg-C kopierte Tabellenbereiche
Schon mal vielen Dank und beste Grüße
Dieter
Anzeige
AW: Copy / Paste blockiert
21.08.2022 13:06:03
Nepumuk
Hallo Dieter,
das wird nicht funktionieren. In die Office-Zwischenablage kannst du nur per Copy/Cut Methode schreiben.
Gruß
Nepumuk
AW: Copy / Paste blockiert
21.08.2022 16:42:46
Dieter
Moin Nepumuk,
habe versucht, das nachzuvollziehen:
- neues Modul 'Glb'
- darin als einziges Makro:
Option Explicit
Global ClpBrd As New DataObject
- jedes Arbeitsblatt erhält 'Worksheet_Deactivate' mit
ClpBrd.GetFromClipboard
- zusätzlich in jedem Arbeitsblatt 'Worksheet_Activate' erweitert mit:
ClpBrd.PutInClipboard
PutInClipboard bricht mit Fehler 'DataObject:PutInClipboard Nicht implementiert' ab (Debugger), wenn vorher nichts mit Ctrl-C oder über rechte Maustaste ... kopiert wurde.
Wenn ein Bereich aus einer Tabelle kopiert wurde, gibt es keinen Fehler, heißt, dass die Variable ClpBrd etwas enthält. Das erscheint aber nicht nach Strg-V bzw. über rechte Maustaste ... nicht auf dem Tabellenblatt. Das mit dem Fehler bei "leerer" Variable ClpBrd wird sich irgendwie lösen lassen.
Der Makroeditor scheint das 'PutInClipboard' zu "kennen", denn er bietet es als Option zu ClpBrd. an, ebenso wie 'GetFromClipboard'.
Entweder ist 'NewData Object' nicht die richtige Zuweisung zu ClpBrd, weshalb sich ein kopierter Bereich nicht in die Zwischenablage zurückschreiben lässt, oder das Zurückschreiben ist in der Excel- bzw. Office-Umgebung grundsätzlich nicht möglich, es sei denn, es gibt ein workaround.
Beste Grüße
Dieter
Anzeige
AW: Copy / Paste blockiert
21.08.2022 17:26:13
max.kaffl@gmx.de
Hallo Dieter,
das DataObject schreibt in das Windows-Clipboard nicht in das von Office.
Gruß
Nepumuk
AW: Copy / Paste blockiert
21.08.2022 19:47:42
Dieter
Moin Nepumuk,
ja, für mich ist wesentlich, ob ich mit dem DataObject (Variable 'ClpBrd') ins clipboard schreiben kann, was ich mit 'Strg-C' vorher kopiert, dann in der Variablen 'ClpBrd' zwischengespeichert habe.
Wie schon geschrieben, 'ClpBrd' enthält tatsächlich Inhalt, der sich nur nicht wieder in das clipboard zurückschreiben lässt.
Beste Grüße
Dieter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige