Ok, ik ga het proberen uit te leggen.
Ik zal een kopie maken van de VBA:
Option Explicit
Public Sub SaveDetailCockpitAsExcelFile(parSheetName As String, parFile As String, parFileName As String, parExtension As String, parStartColumnPivotTable As Long)
Dim lngLastRow As Long
Dim lngLastColumn As Long
Dim lngFirstRow As Long
Dim strWorkBookName As String
Dim strTempSheet As String
Dim lngRowFreeze As Long
Dim lngColumnFreeze As Long
strTempSheet = "Details"
lngRowFreeze = Sheets(parSheetName).Cells(1, 4).Value
lngColumnFreeze = Sheets(parSheetName).Cells(1, 5).Value
Sheets(strTempSheet).Select
ActiveWindow.FreezePanes = False
Sheets(strTempSheet).Cells.Delete Shift:=xlUp
'Het eerste deel van de draaitabel wordt gekopieerd. Dit gebeurd in gedeelten, omdat anders de opmaak niet mee wordt gekopieerd.
'Eerst wordt het bereik van de draaitabel bepaald en vervolgens wordt dit bereik gekopieerd
With Sheets(parSheetName)
If .Cells(1, parStartColumnPivotTable) <> "" Then
lngFirstRow = 2
Else: lngFirstRow = .Cells(1, parStartColumnPivotTable).End(xlDown).Row
End If
End With
'De tekst van de draaitabel wordt gekopieerd naar het nieuwe werkblad
Sheets(parSheetName).PivotTables(1).TableRange1.Copy _
Destination:=Sheets(strTempSheet).Cells(lngFirstRow + 1, 1)
'De kolommenbreedten moeten goed wordden gezet. Daarom worden de kolominstellingen gekopieerd en geplakt
Sheets(parSheetName).Cells.Copy
Sheets(strTempSheet).Cells(1, 1).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Leegt het klembord
Application.CutCopyMode = False
'De titel van de draaitabel wordt gekopieerd
Sheets(parSheetName).Cells(lngFirstRow, parStartColumnPivotTable).Copy _
Destination:=Sheets(strTempSheet).Cells(lngFirstRow, parStartColumnPivotTable)
'Bepaalt de plek waar het scherm moet worden bevroren
Dim rng As Range
Dim Position
Set rng = Sheets(parSheetName).PivotTables(1).DataBodyRange
Position = rng(1).Address
Sheets(strTempSheet).Range(Position).Select
ActiveWindow.FreezePanes = True
'Zorgt ervoor dat niet gemeldt wordt dat een bestand al bestaat, voordat de sheet opnieuw wordt opgeslagen.
Application.DisplayAlerts = False
Sheets(strTempSheet).Copy
Sheets(strTempSheet).SaveAs Filename:=parFile, FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
'Sluit het nieuwe werkbook
Workbooks(parFileName & parExtension).Close
'Meldingen worden vanaf nu weer getoond
Application.DisplayAlerts = True
'Maakt tabblad tijdelijke tabblad weer leeg
ActiveWindow.FreezePanes = False
Sheets(strTempSheet).Cells.Delete Shift:=xlUp
Sheets(strTempSheet).Cells(1, 1).Select
End Sub
Dit is de VBA, ik weet niet wat deze codes inhouden en wil dat een beetje begrijpen, zodat ik hem kan gebruiken in mijn sheet. Deze VBA is uit een oude analyse die niet meer werkt ivm geen goede informatie in de analyse. Ik wil deze nu repareren en ik ben al heel ver, maar ik loop dus nu tegen dit aan en ik ken dit niet. Vandaar dat ik deze even aan jullie wilde voorleggen.
Sorry voor mijn onduidelijkheid. :-(