Servus,
also hier noch einmal das genaue Problem mit den Makros:
Also ich habe eine datei mit 30 Tabellenblätter für 30 Anlagen, diese Tabellenblätter sollen jetzt exportiert werden. Dazu habe ich folgendes Makro erstellt:
Sub Pos01_Export()
’ 33 Änderungen
Sheets(„Pos.01“).Select
Sheets(„Pos.01“).Copy
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Range(„D1“).Select
Selection.NumberFormat = „@“
’ !!! Bei anderen Makros sind die haben die Buttons andere Bezeichnungen !!!
ActiveSheet.Shapes(„Button 6“).Select
Selection.Cut
ActiveSheet.Shapes(„Button 7“).Select
Selection.Cut
ActiveSheet.Shapes(„Button 1“).Select
Selection.Cut
ActiveSheet.Shapes(„Button 9“).Select
Selection.Cut
Range(„G1“).Select
ActiveCell.FormulaR1C1 = „=RC[-3]“
Sheets(„Pos.01“).Range(„D1“).Value = Sheets(„Pos.01“).Range(„G1“).Value
Range(„G1“).Select
Selection.ClearContents
Range(„G2“).Select
ActiveCell.FormulaR1C1 = „=RC[-2]“
Sheets(„Pos.01“).Range(„E2“).Value = Sheets(„Pos.01“).Range(„G2“).Value
Range(„G2“).Select
Selection.ClearContents
Range(„G3“).Select
ActiveCell.FormulaR1C1 = „=RC[-2]“
Sheets(„Pos.01“).Range(„E3“).Value = Sheets(„Pos.01“).Range(„G3“).Value
Range(„G3“).Select
Selection.ClearContents
Range(„O8“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-8])“
Sheets(„Pos.01“).Range(„G8“).Value = Sheets(„Pos.01“).Range(„O8“).Value
Range(„O8“).Select
Selection.ClearContents
Range(„O9“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-8])“
Sheets(„Pos.01“).Range(„G9“).Value = Sheets(„Pos.01“).Range(„O9“).Value
Range(„O9“).Select
Selection.ClearContents
Range(„O10“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-8])“
Sheets(„Pos.01“).Range(„G10“).Value = Sheets(„Pos.01“).Range(„O10“).Value
Range(„O10“).Select
Selection.ClearContents
Range(„O11“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-8])“
Sheets(„Pos.01“).Range(„G11“).Value = Sheets(„Pos.01“).Range(„O11“).Value
Range(„O11“).Select
Selection.ClearContents
Range(„P8“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-7])“
Sheets(„Pos.01“).Range(„i8“).Value = Sheets(„Pos.01“).Range(„P8“).Value
Range(„P8“).Select
Selection.ClearContents
Range(„P9“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-7])“
Sheets(„Pos.01“).Range(„i9“).Value = Sheets(„Pos.01“).Range(„P9“).Value
Range(„P9“).Select
Selection.ClearContents
Range(„P10“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-7])“
Sheets(„Pos.01“).Range(„i10“).Value = Sheets(„Pos.01“).Range(„P10“).Value
Range(„P10“).Select
Selection.ClearContents
Range(„P11“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-7])“
Sheets(„Pos.01“).Range(„i11“).Value = Sheets(„Pos.01“).Range(„P11“).Value
Range(„P11“).Select
Selection.ClearContents
Range(„Q8“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-3])“
Sheets(„Pos.01“).Range(„N8“).Value = Sheets(„Pos.01“).Range(„Q8“).Value
Range(„Q8“).Select
Selection.ClearContents
Range(„Q9“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-3])“
Sheets(„Pos.01“).Range(„N9“).Value = Sheets(„Pos.01“).Range(„Q9“).Value
Range(„Q9“).Select
Selection.ClearContents
Range(„Q10“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-3])“
Sheets(„Pos.01“).Range(„N10“).Value = Sheets(„Pos.01“).Range(„Q10“).Value
Range(„Q10“).Select
Selection.ClearContents
Range(„Q11“).Select
ActiveCell.FormulaR1C1 = „=VALUE(RC[-3])“
Sheets(„Pos.01“).Range(„N11“).Value = Sheets(„Pos.01“).Range(„Q11“).Value
Range(„Q11“).Select
Selection.ClearContents
Range(„D1“).Select
Selection.NumberFormat = „General“
Range(„A1“).Select
Application.ScreenUpdating = True
ActiveSheet.Protect Password:=„XXXX“, DrawingObjects:=True, Contents:=True, Scenarios:=True
For Each Blatt In Worksheets
Blatt.Protect UserInterfaceOnly:=True
Blatt.EnableOutlining = True
Blatt.EnableAutoFilter = True
Next
Dim Neuer_Dateiname
Neuer_Dateiname = Application.GetSaveAsFilename(InitialFileName:=„Pos01.xls“, fileFilter:=„Excel-Arbeitsmappe, *.xls“)
'If Neuer_Dateiname = False Then Exit Sub
ActiveWorkbook.SaveAs FileName:=Neuer_Dateiname
End Sub
Diese Makro gibt es für jedes Tabellenblatt.
Da nach dem abspeichern und schließen der exportierten Datei, beim wieder öffnen der Schutz automatisch aktiv ist, was auch so bleiben soll, kann ich die Gliederungen nicht öffnen, was jedoch unbedingt nötig ist. Jetzt brauche ich ein Makro, welches beim Exportieren der Datei folgendes Makro in „Diese Arbeitsmappe“ schreibt:
Sub Workbook_Open()
Application.ScreenUpdating = False
For Each Blatt In Worksheets
Blatt.Protect „XXXX“, UserInterfaceOnly:=True
Blatt.EnableOutlining = True
Blatt.EnableAutoFilter = True
Next
End Sub
Ich will nur diese eine Basis-Datei haben, da diese an mehrer Leute geht, die an verschiedenen Rechnern arbeite.
Ich hoffe, dass es machbar ist.
Vielen Dank.
Gruß Johannes