Code:
Option Explicit
Sub ArbeitsblaetterKopieren()
Dim objProjects As ObjectItems
'Projekte-Ordner
Set objProjects = Application.Folders.Projects.FindObjects(aucObjProject, aucSearchHierarchical)
Call ProcessSheetsCopy(objProjects)
'Projektvorlagen-Ordner
Set objProjects = Application.Folders.ProjectTemplates.Children
Call ProcessSheetsCopy(objProjects)
Set objProjects = Nothing
End Sub
Private Sub ProcessSheetsCopy(ByVal objProjects As ObjectItems)
Dim objTemplate As ObjectItem
Dim objProject As ObjectItem
Dim objItem As ObjectItem
Dim l As Long
'Vorlagen-Ordner (Master)
Set objTemplate = Application.Folders.Templates.Children.Item("Arbeitsblätter").Children.Item("Favoriten")
Call Application.WaitDialog.Start(100, "Arbeitsblätter kopieren", aucAnimFileCopy, "Arbeitsblätter")
For l = 1 To objProjects.Count
Call Application.WaitDialog.Update(100 / objProjects.Count * l, "Bitte warten...")
Set objProject = objProjects.Item(l).Project.TemplatesFolder.Children.Item("Arbeitsblätter").Children.Item("Favoriten")
'Alte Arbeitsblätter werden gelöscht
For Each objItem In objProject.Children
objItem.Delete
Next
'Neue Arbeitsblätter werden kopiert
For Each objItem In objTemplate.Children
Call objItem.CopyTo(objProject, True)
Next
Next
Call Application.WaitDialog.Stop
Set objProjects = Nothing
Set objTemplate = Nothing
Set objProject = Nothing
Set objItem = Nothing
End Sub