Workbook.open
23.01.2018 09:34:58
Georg
Wie ihr seht wird ein bestimmter Pfad + Datei ausgewählt und diese wird dann entsprechend bearbeitet.
Was ich möchte:
Geöffnet ist die Vorlagendatei (WbZ), darüber soll dann der Anwender anstatt diesem festgelegten Pfad und Datei ein Fenster bekommen, wo er eine Datei auswählen kann.
Für diese Datei sollen dann sämtliche Befehle wie Kopieren etc wie im Code angegeben durchgeführt werden.
Meine Kenntnisse reichen i-wie nicht aus, über Work.book open und application.getopenfilename krieg es nicht hin. Wahrscheinlich kann man auch die Umbenennung der Sheets eleganter lösen, aber das ist zweitrangig.
Der momentane Code:
Sub Murnau()
'1 Überträge kopieren
Dim WbZ As Workbook: Set WbZ = ThisWorkbook 'Ziel-Mappe = DIE Vorlagen-Mappe
Dim WbQ As Workbook, Datei$, i&
Dim dialog As Object
Dim fileSaveName As Variant
Dim Pfad As Variant
Pfad = "Q:\Personal Leitung\Abrechnung\Gehaltsläufe\2016\BPx\" 'schließenden "\" beachten
Datei = "201_Murnau_Personalabrechnung_2016.xlsm"
Application.ScreenUpdating = False
Set WbQ = Workbooks.Open(Pfad & Datei)
For i = 3 To 17
WbZ.Worksheets(i).Range("J38") = WbQ.Worksheets(i).Range("I248")
Next i
WbQ.Close False 'Optional Quell-Mappe ohne Speichern schließen
'2 Buttons Löschen
On Error Resume Next
For i = 1 To 1
ActiveWorkbook.Sheets(i).Buttons.Delete
Next i
'3 Daten kopieren
Set WbQ = Workbooks.Open(Pfad & Datei)
Sheets(1).Select
Range("B3:F22").Select
Selection.Copy
WbZ.Activate
Sheets("BPx Stammdaten").Activate
Range("b3").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
'ActiveWindow.Close
WbQ.Activate
Sheets("AZDaten").Activate
Range("c18:M33").Select
Selection.Copy
WbZ.Activate
Sheets("AZDaten").Activate
Range("c18").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.DisplayAlerts = False
WbQ.Close
'ActiveWindow.Close 'letzte Zeile
Application.DisplayAlterts = True
'4 Sheets umbenennen
ThisWorkbook.Activate
Sheets("MA1").Select
Sheets("MA1").Name = Sheets("BPx Stammdaten").Range("C8")
Sheets("MA2").Select
Sheets("MA2").Name = Sheets("BPx Stammdaten").Range("C9")
Sheets("MA3").Select
Sheets("MA3").Name = Sheets("BPx Stammdaten").Range("C10")
Sheets("MA4").Select
Sheets("MA4").Name = Sheets("BPx Stammdaten").Range("C11")
Sheets("MA5").Select
Sheets("MA5").Name = Sheets("BPx Stammdaten").Range("C12")
Sheets("MA6").Select
Sheets("MA6").Name = Sheets("BPx Stammdaten").Range("C13")
Sheets("MA7").Select
Sheets("MA7").Name = Sheets("BPx Stammdaten").Range("C14")
Sheets("MA8").Select
Sheets("MA8").Name = Sheets("BPx Stammdaten").Range("C15")
Sheets("MA9").Select
Sheets("MA9").Name = Sheets("BPx Stammdaten").Range("C16")
Sheets("MA10").Select
Sheets("MA10").Name = Sheets("BPx Stammdaten").Range("C17")
Sheets("MA11").Select
Sheets("MA11").Name = Sheets("BPx Stammdaten").Range("C18")
Sheets("MA12").Select
Sheets("MA12").Name = Sheets("BPx Stammdaten").Range("C19")
Sheets("MA13").Select
Sheets("MA13").Name = Sheets("BPx Stammdaten").Range("C20")
Sheets("MA14").Select
Sheets("MA14").Name = Sheets("BPx Stammdaten").Range("C21")
Sheets("MA15").Select
Sheets("MA15").Name = Sheets("BPx Stammdaten").Range("C22")
Sheets("BPx Stammdaten").Select
Sheets("BPx Stammdaten").Name = Sheets("AZDaten").Range("R5")
Sheets("BPx_Abrechnung").Select
Sheets("BPx_Abrechnung").Name = Sheets("AZDaten").Range("Q6")
ActiveWorkbook.Sheets(2).Unprotect Password:="Personal"
End Sub