Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Import / Export Makro

Import / Export Makro
24.08.2018 18:38:28
Simy
Hallo zusammen,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Import / Export Makro
25.08.2018 12:53:01
fcs
Hallo Simy,
ich hab deine Makros mal so angepasst, dass sie unabhängig von den Dateinamen arbeiten.
Gruß
Franz

Sub Exportieren()
Dim fn As Variant, lngVisible As Long
Dim wbQuelle As Workbook, wb_new As Workbook
fn = Application.GetSaveAsFilename(InitialFileName:="Auslagerungsdatei.xls", _
fileFilter:="Excel-Arbeitsmappe (*.xls), *.xls", _
Title:="Bitte den Namen der Auslagerungsdatei eingeben/auswählen")
If fn = False Then Exit Sub
If Dir(fn)  "" Then
If MsgBox("Soll die vorhandene Auslagerungsdatei" & vbLf _
& fn & vbLf & "überschrieben werden?", _
vbQuestion + vbYesNo, "Auslagerungsdatei erstellen") = vbNo Then Exit Sub
End If
Application.ScreenUpdating = False
Set wbQuelle = ActiveWorkbook
With wbQuelle.Sheets("Eingabemaske")
lngVisible = .Visible
If .Visible  xlSheetVisible Then .Visible = xlSheetVisible
.Copy
End With
Set wb_new = ActiveWorkbook
With wb_new
Application.DisplayAlerts = False
.SaveAs Filename:=fn, FileFormat:=xlWorkbookNormal, addtomru:=False
Application.DisplayAlerts = True
.Close
End With
wbQuelle.Activate
With wbQuelle.Sheets("Eingabemaske")
If lngVisible  .Visible Then .Visible = lngVisible
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 Variant
Dim wbZiel As Workbook, wksZiel As Worksheet
Dim wbImport As Workbook, wksImport As Worksheet
Set wbZiel = ActiveWorkbook
fn = Application.GetOpenFilename(fileFilter:="Excel-Arbeitsmappe (*.xls), *.xls", _
Title:="Bitte die zu importirende Auslagerungsdatei auswählen")
If fn = False Then Exit Sub
Application.ScreenUpdating = False
Set wksZiel = wbZiel.Worksheets("Eingabemaske")
With wksZiel
If .Visible  xlSheetVisible Then .Visible = xlSheetVisible
End With
Set wbImport = Application.Workbooks.Open(fn, ReadOnly:=True)
Set wksImport = wbImport.Worksheets("Eingabemaske")
wksImport.Range("A5:B34").Copy wksZiel.Range("A5:B34")
wksImport.Range("D5:F34").Copy wksZiel.Range("D5:F34")
wksImport.Range("H5:J34").Copy wksZiel.Range("H5:J34")
wbImport.Close savechanges:=False
wksZiel.Activate
End Sub

Anzeige
AW: Import / Export Makro
25.08.2018 13:40:28
Simy
Hallo Franz,
vielen , vielen DANK.
Arbeitet genau so wie ich es wollte.
Viele Grüße und schönes WE
Simy

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige