Hallo liebe Excelfangemeinde,
ich habe ca. 30 gleich aufgebaute Dateien, die ich immer an der selben Stelle in jeder Datei mit Daten überschreiben will.
Dazu bedarf es auch, dass ich in jeder Datei und Tabellenblatt einen Schreibschutz hinterlegt habe, den ich dann zunächst einmal ausschalten muss.
Das Makro läuft immer identisch für jede einzelne Gruppe ab: Kopiere Dir die Daten im Tabellenblatt von Haupt-Menü - gehe dann in die erste Gruppe - blende das Fenster Pk-Name ein - schalte den Blattschutz aus - und füge die Daten ein. Nach der Übertragung dann wieder den Blattschutz einschalten, das Tabellenblatt PK-Name wieder ausblenden und wenn der Cursor im Blatt Anwesend steht, das Gruppenblatt speichern und schließen.
Nach Durchlauf des ersten Gruppenblattes dann zum nächsten gehen und das alles wiederholen.... letztendlich ca. 30 x.
Die ersten Gruppen laufen eigentlich immer durch, aber dann irgendwann kommt das Makro zum stoppen und kann nur noch mit Abbruch beendet werden.
Da die ersten Gruppen ja fehlerfrei durchlaufen und die Abbrüche auch schon mal an unterschiedlichen Stellen stattfinden, muss es etwas anderes sein, was mir den kompletten Durchlauf verhagelt.
Meine Vermutung liegt im Zwischenspeicher, dass ich mir da zu viel Daten reinknalle.
Habe mir auch schon überlegt, ob ich die Übertragung nur Gruppenweise durchführen sollte (max. 10 Gruppen) und dann mal schauen, ob es dann auch wieder zu Abbrüchen führt.
Evtl. hat aber auch jemand von Euch eine andere Idee, wenn er sich das Makro ansieht, dass man da was einfacher machen kann..
Ich bedanke mich schon mal für Euer Interesse und wünsche allen noch einen schönen Tag... MfG... Helmut
Sub Personuebertragen()
Application.ScreenUpdating = False
'********************** GRUPPE 2 ***************************************************
ChDir "G:\Fertigung\Abrechnung\Gruppe 02\2022"
Workbooks.Open Filename:= _
"G:\Fertigung\Abrechnung\Gruppe 02\2022\Vorlage_Gruppe_02_2022.xlsm"
Sheets("Anwesend").Select
Sheets("Pk-Name").Visible = True
Sheets("Pk-Name").Select
ActiveSheet.Unprotect Password:="XXX"
Range("B2:C2100").Select
Selection.ClearContents
Range("B2").Select
Windows("Haupt-Menue.xlsm").Activate
Range("J5:K2000").Select
Selection.Copy
Windows("Vorlage_Gruppe_02_2022.xlsm").Activate
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("Pk-Name").Select
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Pk-Name").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("Anwesend").Select
ActiveWorkbook.Save
ActiveWorkbook.Close
'***************************** GRUPPE 4 *********************************************
ChDir "G:\Fertigung\Abrechnung\Gruppe 04\2022"
Workbooks.Open Filename:= _
"G:\Fertigung\Abrechnung\Gruppe 04\2022\Vorlage_Gruppe_04_2022.xlsm"
Sheets("Anwesend").Select
Sheets("Pk-Name").Visible = True
Sheets("Pk-Name").Select
ActiveSheet.Unprotect Password:="XXX"
Range("B2:C2100").Select
Selection.ClearContents
Range("B2").Select
Windows("Haupt-Menue.xlsm").Activate
Range("J5:K2000").Select
Selection.Copy
Windows("Haupt-Menue.xlsm").Activate
Range("J5:K2000").Select
Selection.Copy
Windows("Vorlage_Gruppe_04_2022.xlsm").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Sheets("Pk-Name").Select
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Pk-Name").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("Anwesend").Select
ActiveWorkbook.Save
ActiveWorkbook.Close