Voor mijn werk heb ik een query gemaakt die maandelijks gegevens uit een database ophaalt en middels een tekstbestandkoppeling in een Excelsheet presenteert. Binnen de Excel sheet heb ik een Macro gemaakt, die de gegevens -zonder de tekstbestandkoppeling- naar een leeg bestand kopieert en opslaat. Dit om te voorkomen dat de gebruiker het originele bestand opslaat en bij her-opening op later moment gegevens vernieuwd. De gebruiker moet er dus om denken de macro af te trappen.
Zelf zou ik het echter mooier vinden om de macro geheel automatisch af te starten in 'ThisWorkbook'.
Zodat de gebruiker geen enkele handeling hoeft te verrichten.
Wie kan mij helpen dit om te bouwen?
Zelf zou ik het echter mooier vinden om de macro geheel automatisch af te starten in 'ThisWorkbook'.
Zodat de gebruiker geen enkele handeling hoeft te verrichten.
Wie kan mij helpen dit om te bouwen?
Code:
Sub CopyPastClosed()
'
' CopyPastClosed Macro
'
'
Workbooks.Open Filename:="H:\Alg_Rename.xlsx"
Windows("Besluiten.xlsm").Activate
Range("A1:Z200").Select
Selection.Copy
Windows("Alg_Rename.xlsx").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Besluiten.xlsm").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Alg_Rename.xlsx").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'Columns("A:A").EntireColumn.AutoFit
'Cells.Select
Selection.AutoFilter
Cells.EntireColumn.AutoFit
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.EntireColumn.AutoFit
Range("D2").Select
ActiveWindow.FreezePanes = True
Range("A2").Select
Dim Naam As String
Dim Pad As String
Dim Bestandsnaam As String
Naam = Sheets(1).Range("V1").Value & ".xlsx"
Pad = "H:\Excel\"
Bestandsnaam = Pad & Naam
ActiveWorkbook.SaveAs Pad & Naam
Windows("Besluiten.xlsm").Activate
Range("A2").Select
ActiveWorkbook.Close savechanges:=False
End Sub