Das ist schon mal löblich, dass du das machst. Das spart in jedem Fall Speicherplatz. Nach meiner Erfahrung geht der UsedRange meistens bis Strg+Ende. Da muss nichts unbedingt drin stehen. Es reicht schon aus, wenn du irgendwo einer Zelle eine Hintergrundfarbe zuweist. Selbst wenn du die Farbe danach wieder auf auf Keine setzt, bleibt der Usedrange oft erhalten. Nur das Löschen von überflüssigen Zeilen und Spalten passt den Usedrange nach unten an und verringert somit den Speicherbedarf der Datei.
Du kannst aber die letzte Zeile mit Daten per VBA ermitteln. Wenn es sich um fast vollständige Datensätze handelt geht das z.B. mit
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Sollte in der ersten Spalte von der letzten Zeile deiner Datenbank nichts stehen sondern nur irgendwo mittendrin etwas bietet sich die allgemeine Rückwärtssuche besser an:
Set Rng = ActiveSheet.Cells.Find("*", SearchDirection:=xlPrevious)
If Not Rng Is Nothing Then lastrow = Rng.Row
In beiden Fällen kannst du dann deinen realen Bereich per VBA ansprechen. z.B. mit Range("A1:E" & lastRow) natürlich nur, sofern lastRow > 0 ist.
Gruß Mr. K.
|