Copy / Paste blockiert
17.08.2022 16:55:13
Dieter
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