ich verzweifel mal wieder :-|
Ich habe folgendes Problem:
Ich möchte gerne eine Export und Import Schalfläche bzw. Makro in meine Excel-Datei einbinden. Beim Export soll einfach ein bestimmtes Arbeitsblatt ("Eingabemaske") komplett kopiert und in eine neuen Datei ausgelagert werden.
Beim Import dagegen sollen nur bestimmte Bereiche (A5:B34, D5:F34 und H5:J34) aus der o.a. Auslagerungsdatei wieder in das Hauptporgramm importiert werden.
Das Problem was ich gerade mit den u.a. Makros habe ist, dass ich für den Kopiervorgang immer den aktuellen Name der Hauptdatei angeben muss. Der ändert sich aber von Version zur Version.
Gibt es eine Möglichkeit, dass ich den Namen der Exportdatei frei wählen kann und auch der Import nicht am Dateinamen hängt?
Ich hoffe, ich konnte mein Problem vernünftig rüber bringen :-)
Danke an alle und schönes WE
Simy
Ich habe folgendes Makro für den Export gefunden und abgeändert:
Sub Exportieren()
Dim fn As String
Dim wb_dest As Workbook, wb_new As Workbook
fn = Application.GetSaveAsFilename(InitialFileName:="Auslagerungsdatei.xls", _
fileFilter:="Excel-Arbeitsmappe (*.xls), *.xls")
Application.ScreenUpdating = False
Set wb_dest = ActiveWorkbook
Sheets("Eingabemaske").Visible = True
Sheets(Array("Eingabemaske")).Copy
With ActiveWorkbook
.SaveAs Filename:=fn
.Close
End With
Application.ScreenUpdating = True
End Sub
Das geht schonmal ganz gut. Für den Import habe ich folgendes gefunden:
Sub importieren2()
Dim fn As String
fn = Application.GetOpenFilename(fileFilter:="Excel-Arbeitsmappe (*.xls), *.xls")
Application.ScreenUpdating = False
Workbooks.Open ("Auslagerungsdatei.xls")
Windows("Auslagerungsdatei.xls").Activate
Sheets("Eingabemaske").Select
Range("A5:B34").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Arbeitsmodul_Version15.xlsm").Activate
Sheets("Eingabemaske").Visible = True
Sheets("Eingabemaske").Select
Range("A5:B34").Select
ActiveSheet.Paste
Windows("Auslagerungsdatei.xls").Activate
Sheets("Eingabemaske").Select
Range("D5:F34").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Arbeitsmodul_Version15.xlsm").Activate
Sheets("Eingabemaske").Visible = True
Sheets("Eingabemaske").Select
Range("D5:F34").Select
ActiveSheet.Paste
Windows("Auslagerungsdatei.xls").Activate
Sheets("Eingabemaske").Select
Range("H5:J34").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Arbeitsmodul_Version15.xlsm").Activate
Sheets("Eingabemaske").Visible = True
Sheets("Eingabemaske").Select
Range("H5:J34").Select
ActiveSheet.Paste
End Sub