Herbers Excel-Forum - das Archiv

VBA-Daten export. u. importieren aus und in Excel

Bild

Betrifft: VBA-Daten export. u. importieren aus und in Excel
von: Uwe

Geschrieben am: 16.12.2006 13:14:03
Hallo,
ich habe folgendes Problem:
Ich habe eine Exceldatei mit mehreren Tabellenblättern (27). Die Datei ist rd. 3 MB groß. Bestimmte Dateien müssen regelmäßig abgespeichert werden. Speichert man reglmäßig die 3 MB Datei ab, so sprengt das irgendwann die Festplattenkapazität.
Aus diesem Grund sollen lediglich 2 Tabellenblätter separat gespeichert werden. Alle anderen Tabellenblätter sind lediglich mit diesen beiden Tabellenblättern verknüpft, so dass deren Daten in der Exceldatei verbleiben können. Anschließend sollen die ausgelagerten Daten wieder importiert werden. Hierzu habe ich 2 Schaltflächen für VBA-Befehle vorgesehen. Wenn ich den Auslagerungsdateien feste Namen gebe, dann habe ich kein Problem, die Daten zu ex- und zu importieren. Jede Auslagerungsdatei soll jedoch einen anderen Namen erhalten (z.B Auslagerungsdatei 1, 2, 3, etc...). Ich habe mir daher vorgestellt, wie über den Befehl "speichern unter" bzw. "Datei öffnen" die Datenbereiche (Tabelle1: (A1:U300 und Tabelle7: B294:N1500) in den 2 Tabellen zu speichern und später wieder in das Ursprungstool einzufügen.
Ich habe leider recht wenig Ahnung mit der Programierung von Makros. Leichtere Sachen bekomme ich hin, dies übersteigt jedoch meinen Horizont. Dennoch würde ich dies gerne in dem Tool umsetzen. Ich hoffe Ihr könnt mir bei meinem Problem helfen.
Vielen Dank.
Gruß
Uwe
Bild

Betrifft: AW: VBA-Daten export. u. importieren aus und in E
von: Matthias G

Geschrieben am: 16.12.2006 20:24:19
Hallo Uwe,
erster Teil (Export):
Sub Exportieren()
Dim fn As String
Dim wb_dest As Workbook, wb_new As Workbook
'Dateiname abfragen
fn = Application.GetSaveAsFilename(fileFilter:="Excel-Arbeitsmappe (*.xls), *.xls")
'Blätter in neue Mappe kopieren:
Application.ScreenUpdating = False
Set wb_dest = ActiveWorkbook
Sheets(Array("Tabelle2", "Tabelle7")).Copy
With ActiveWorkbook
.SaveAs Filename:=fn
.Close
End With
Application.ScreenUpdating = True
MsgBox "Blätter wurden exportiert."
End Sub

Jetzt hab ich aber erstmal keine Zeit mehr...
Gruß Matthias
Bild

Betrifft: AW: VBA-Daten export. u. importieren aus und in E
von: Uwe

Geschrieben am: 16.12.2006 21:48:18
Hallo Matthias,
vielen Dank. Ich habe versucht, ausgehend von deinem Makro, ein Makro für den Import zu schreiben. Hierbei musste 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.
Besser wäre natürlich ein frei wählbarer Name. Vielleicht kannst du ja das Makro noch ein wenig optimieren. Vielen Dank schon mal.
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 in neue Mappe kopieren:
Application.ScreenUpdating = False
Workbooks.Open ("Auslagerung Gesamtobligo.xls")
Windows("Auslagerung.xls").Activate
Sheets("Tabelle1").Select
Range("C12:H36").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Transfer.xls").Activate
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

Gruß
Uwe
Bild

Betrifft: AW: VBA-Daten export. u. importieren aus und in E
von: Uwe

Geschrieben am: 16.12.2006 21:51:28
Hallo Matthias,
vielen Dank. Ich habe versucht, ausgehend von deinem Makro, ein Makro für den Import zu schreiben. Hierbei musste 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.
Besser wäre natürlich ein frei wählbarer Name. Vielleicht kannst du ja das Makro noch ein wenig optimieren. Vielen Dank schon mal.
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 in neue Mappe kopieren:
Application.ScreenUpdating = False
Workbooks.Open ("Auslagerung Gesamtobligo.xls")
Windows("Auslagerung.xls").Activate
Sheets("Tabelle1").Select
Range("C12:H36").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Transfer.xls").Activate
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

Gruß
Uwe
 Bild
Excel-Beispiele zum Thema "VBA-Daten export. u. importieren aus und in Excel"
Textdatei in Tabellenblatt importieren Textdatei nach Begriff durchsuchen und Fundzeile importieren
Diagramm exportieren und in Tabellenblatt importieren Suchbegriffe in UserForm eingeben, Fundstelle importieren
Benannte Bereich aus mehreren Arbeitsmappen importieren Textdatei mit 250.000 Zeilen anlegen und importieren
Name und Vorname suchen, Werte und Fundstellen importieren Grafik importieren und in Zelle zentrieren
Arbeitsblatt aus einer anderen Arbeitsmappe importieren Textdatei über QueryTables importieren