Herbers Excel-Forum - das Archiv

Import/ Export

Bild

Betrifft: Import/ Export
von: Uwe

Geschrieben am: 22.12.2006 21:06:40
Hallo ,
Matthias hat mir letzte Woche schon recht weit mit der Exportfunktion geholfen, so dass ich selbst versucht habe eine Importfunktion zu programmieren. Hierbei muss ich jedoch einen festen Namen beim Export definieren. Zumindest kann ich verschiedene Ordner auswählen. Die Vergabe eines festen Namens ermöglicht, dass ich zwischen den Dateien wechseln kann und aus der Auslagerungsdatei nur bestimmte Bereiche wieder in die Ursprungsdatei importieren kann.
In meinem Fall brauche ich jedoch eine Importfunktion, die unabhängig vom Namen funktioniert, d.h. dass der Name frei wählbar ist.
Tabelle 1 (Name1) und 7 Name7)sollen aus meinem Tool exportiert werden. Hier muss kein Bereich definiert werden.
Beim Import hingegen dürfen nur bestimmte Bereiche aus der ausgelagerten Datei importiert werden.
Wie gesagt, unten stehende Makros funktionieren, wenn ich beim Export und beim Import von festen Dateinamen ausgehen. Ich brauche jedoch die Möglichkeit, dass ich unabhängig vom Dateinamen die entsprechenden Bereiche importieren kann.
Ich hoffe, Ihr habt einen Tip für mich.
Anbei nochmals die Makros:
Option Explicit
Sub Exportieren()
Dim fn As String
Dim wb_dest As Workbook, wb_new As Workbook
'Dateiname abfragen
fn = Application.GetSaveAsFilename(InitialFilename:="Auslagerung.xls", _
fileFilter:="Excel-Arbeitsmappe (*.xls), *.xls")
'Blätter in neue Mappe kopieren:
Application.ScreenUpdating = False
Set wb_dest = ActiveWorkbook
Sheets(Array("Tabelle1", "Tabelle7")).Copy
With ActiveWorkbook
.SaveAs Filename:=fn
.Close
End With
Application.ScreenUpdating = True
End Sub

Sub importieren()
Dim fn As String
'Dateiname abfragen
fn = Application.GetOpenFilename(fileFilter:="Excel-Arbeitsmappe (*.xls), *.xls")
'Blätter/ Bereiche in Quelldatei kopieren:
Application.ScreenUpdating = False
Workbooks.Open ("Auslagerung.xls")
Windows("Auslagerung.xls").Activate 'Auslagerungsdatei
Sheets("Tabelle1").Select
Range("C12:H36").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Transfer.xls").Activate 'Quelldatei/ Tool
Sheets("Tabelle1").Select
Range("C12:H36").Select
ActiveSheet.Paste
Windows("Auslagerung.xls").Activate
Sheets("Tabelle7").Select
Range("C8:H25").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Transfer.xls").Activate
Sheets("Tabelle7").Select
Range("C8:H25").Select
ActiveSheet.Paste
MsgBox "Die Daten wurden erfolgreich Importiert!"
End Sub

Grüße
Uwe
Bild

Betrifft: AW: Import/ Export
von: fcs

Geschrieben am: 23.12.2006 01:00:59
Hallo Uwe,
habe mal versucht deine Wümsche umzusetzen. Beim Speichern der neuen Auslagerungsdatei wird jetzt der allgemeine Speichern-unter-Dialog angezeigt.
Beim Importieren habe ich den Variablen-Namen der gewählten Datei an den entsprechenden Stellen eingesetzt. Außerdem hab ich die Kopier-Befehlszeilen radikal eingekürzt.
Alles ungetestet. Hoffe das klappt.
Gruss
Franz
Option Explicit
Sub Exportieren()
Dim wb_dest As Workbook, wb_new As Workbook
'Blätter in neue Mappe kopieren:
Application.ScreenUpdating = False
Set wb_dest = ActiveWorkbook
Sheets(Array("Tabelle1", "Tabelle7")).Copy
Set wb_new = ActiveWorkbook
Application.Dialogs(xlDialogSaveAs).Show
If wb_new.Saved = True Then
wb_new.Close
wb_dest.Activate
Else
MsgBox "Die Auslagerungsdatei wurde noch nicht gespeichert!"
End If
Application.ScreenUpdating = True
End Sub
Sub importieren()
Dim fn As String
Dim wbTrans As Workbook, wbAus As Workbook
Set wbTrans = Workbooks("Transfer.xls")
'Dateiname abfragen
fn = Application.GetOpenFilename(fileFilter:="Excel-Arbeitsmappe (*.xls), *.xls")
If fn = False Then Exit Sub 'Abbrechen geklickt
'Blätter/ Bereiche in Quelldatei kopieren:
Application.ScreenUpdating = False
Set wbAus = Workbooks.Open(fn)
wbAus.Sheets("Tabelle1").Range("C12:H36").Copy wbTrans.Sheets("Tabelle1").Range("C12:H36")
wbAus.Sheets("Tabelle7").Range("C8:H25").Copy wbTrans.Sheets("Tabelle7").Range("C8:H25")
wbAus.Close
wbTrans.Activate
MsgBox "Die Daten wurden erfolgreich Importiert!"
End Sub

Bild

Betrifft: AW: Import/ Export
von: Uwe

Geschrieben am: 23.12.2006 20:58:20
Hallo Franz,
der Export klappt, beim Import erhalte ich eine Fehlermeldung. Ich habe die Exceldatei eingestellt.
https://www.herber.de/bbs/user/39175.xls
Vielleicht kannst du nochmal bei Gelegenheit drübergucken. Ich habe schon vergebens versucht das Makro umzustellen. Mit fehlen jedoch die Kenntnisse.
Beim Exportieren werden die Schaltflächen mit kopiert. Gibt es eine Möglichkeit, dieses auf beiden Tabellenblättern zu unterdrücken?
Vielen Dank schon mal und schöne Feiertage
Grüße
Uwe
 Bild
Excel-Beispiele zum Thema "Import/ Export"
Export von Diagrammen im Grafikformat Textexport in CSV-Datei mit beliebigen Feldtrennern
Export in Textdatei mit festen Feldlängen Export in *.CSV-Datei mit Kommata als Feldtrenner
Diagramm exportieren und in Tabellenblatt importieren Druckbereiche als GIF-Grafiken exportieren
Module und UserForms einer zu öffnenden Arbeitsmappe exportieren