Hallo,
ich habe folgendes Problem:
Ich arbeite an einer größeren Auswertungsmappe in Excel mit (geschätzt) min. 30 Tabellen.
Ich habe natürlich -wie viele Leute - ein Problem mit der "Dateigrößenexplosion" in Excel.
Jetzt habe ich in einem Forum den (funktionierenden!) Tipp bekommen, in jeder Tabelle alle Leerzellen bis 65535 zu löschen.
Da ich derartig viele Tabellen habe, möcht eich diesen Prozess (auch im Blick auf zukünftige Anwendungen) automatisieren.
Das funktioniert soweit auch - nur startet dieses Makro in einigen Tabellen, die andere Makros enthalten, die per Befehlsschaltfläche (Combo, Buttton etc.) gestartet werden beim Ausführen des Befehls "delete" diese integrierten Makros! Das passiert nicht in jeder dieser Tabellen und die Schaltflächen liegen weit außerhalb des durch das Makro markierten Bereichs!
Ich hoffe, es kann mir jemand weiterhelfen - ich finde das sehr misteriös!
Hier der Code des Bereinigungsmakros:
Sub Makro1()
spalte = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
For Each blatt In Sheets
blatt.Select
Application.Goto Reference:="R65536C1"
Rows((ActiveSheet.Cells(65536, 1).End(xlUp).Row + 1) & ":65536").Select
Selection.Delete Shift:=xlUp
Range("A1").Activate
Application.Goto Reference:="R1C256"
ende = ActiveSheet.Cells(1, 256).End(xlToLeft).Column + 1
If ende <= 26 Then
Start = spalte(ende)
Else
a = WorksheetFunction.RoundDown(ende / 26, 0)
b = WorksheetFunction.RoundDown(ende - a * 26, 0)
Start = spalte(a, 0) & spalte(b)
End If
Columns(Start & ":IV").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Activate
Next blatt
ActiveWorkbook.SaveAs Filename:=Application.GetSaveAsFilename("", "Microsoft Excel 2000, *.xls"), FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
End Sub
|