in einer Arbeitsmappe soll nach Blättern mit "Schedule xxxx" gesucht werden, diese dann eingeblendet und kopiert werden. Dabei soll der Name "Schedule xxxx" in "bkp xxxx" getauscht werden und diese dann ausgeblendet werden. Es handelt sich hierbei um Backup-Kopien, die nur während der Session zur Sicherheit gemacht werden, um beim Schließen der Datei den ursprünglichen Zustand wieder herstellen zu können. Dann werden Sie wieder gelöscht.
In einer Testdatei mit 3 dieser Blätter (Gelb, Grün, Blau) funktioniert es soweit, wenn alle betreffenden Blätter bereits eingeblendet sind.
Wenn nicht, dann kopiert zwar der Code das 1. und 2. gefundene Blatt, tauscht aber den Namen nicht, sondern benennt die neuen Blätter "Schedule 2011 (2)" , "Schedule 2012 (2)" . Die Inhalte würden stimmen, da entsprechend die gelben bzw. grünen Felder kopiert sind. Und das dritte bleibt ausgeblendet und bekommt als Namen "bkp 2012". Dies entspricht Blatt 2, aber der Inhalt ist der des dritten (blaues Feld).
Nachfolgend der Code und ein Testfile.
https://www.herber.de/bbs/user/79324.xlsm
Kann mir jemand einen Tip geben, wo bei mir der Denkfehler steckt?
Vielen Dank
Gert
Sub mcr_SaveFormat()
Dim WSh As Worksheet
Dim varWSh As String
'ActiveWorkbook.Unprotect (Worksheets("User").Range("C8"))
For Each WSh In ActiveWorkbook.Sheets
If Left(LCase(WSh.Name), 8) = "schedule" Then
WSh.Visible = True
WSh.Select
WSh.Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "bkp " & Right(WSh.Name, 4)
End If
Next WSh
End Sub