AW: Excel Datei wird sehr groß beim Speichern
23.10.2010 01:53:57
Daniel
Hallo Johannes
Das klingt, als ob jeweils das ganze Tabellenblatt benutzt wird. Verwende mal bei einem Tabellenblatt die Tastenkmbination STRG&Ende. damit wird die letzte aktive Zelle "angesprungen". Falls es sich dabei nicht um die unterste Zeile und der letzten Spalte Deines Import handelt, kannst Du folgendes Makro verwenden (nicht von mir):
Public Sub ResetLastCell()
' Diese Prozedur setzt die letzte Zelle des aktiven Tabellenblattes zurück
' Original-Code: Microsoft Corporation
' Anpassungen: Philipp von Wartburg
Dim rngLastCell As Range
Dim rowstep As Integer
Dim colstep As Integer
'Aktuelle letzte Zelle des aktiven Blattes merken
Set rngLastCell = Cells.SpecialCells(xlLastCell)
'Adresse der aktuellen letzten Zelle in der Statusleiste anzeigen
Application.StatusBar = "Letzte Zelle: " & rngLastCell.Address
'Variablen rowstep und colstep initialisieren
rowstep = -1
colstep = -1
'Schleife durchlaufen bis letzte Zelle gefunden oder Zelle A1 erreicht ist
While (rowstep + colstep 0) And (rngLastCell.Address "$A$1")
'Prüfen ob die momentane Spalte eine Zelle mit Daten enthält
If Application.CountA(Range(Cells(1, rngLastCell.Column), rngLastCell)) > 0 Then _
colstep = 0
'Prüfen ob die momentane Zeile eine Zelle mit Daten enthält
If Application.CountA(Range(Cells(rngLastCell.Row, 1), rngLastCell)) > 0 Then _
rowstep = 0
'Objektpointer rngLastCell auf die neue Position setzen
Set rngLastCell = rngLastCell.Offset(rowstep, colstep)
'Adresse der "neuen" letzten Zelle in der Statusleiste anzeigen
Application.StatusBar = "Letzte Zelle: " & rngLastCell.Address
Wend
'Unbenutzte Spalten leeren und dann löschen
With Range(Cells(1, rngLastCell.Column + 1), "IV65536")
Application.StatusBar = "Lösche Spalten: " & .Address
.Clear
.Delete
End With
'Unbenutzte Zeilen leeren und dann löschen
With Rows(rngLastCell.Row + 1 & ":65536")
Application.StatusBar = "Lösche Zeilen: " & .Address
.Clear
.Delete
End With
Set rngLastCell = Nothing
'Neue letzte Zelle selektieren
Cells.SpecialCells(xlLastCell).Select
'Statusleiste zurücksetzen und neue letzte Zelle ausgeben
Application.StatusBar = False
MsgBox "Die neue letzte Zelle besitzt die Adresse " & _
Cells.SpecialCells(xlLastCell).Address(False, False) & ".", vbInformation
End Sub
Du müsstest dieses Makro laufen lassen (auf jedem Tabellenblatt) und im Anschluss speichern und schliessen. Deine Datei müsste nun kleiner sein und die Tastenkombination die letzte Zeile und Spalte des Imports aktivieren
Ansonsten hätte ich spontan auch keine Idee, warum Deine Tabelle so gross wird
Grüsse
Daniel