Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Variierender Speicherplatz
#1
Moin,

meine Exceldatei beansprucht auf SSD 6,6 MB Speicherplatz und ohne dass ich irgendetwas getan hätte plötzlich 11,2 MB.
Nach erneutem Speichern waren es wieder 6,6 MB. Was könnte die Ursache sein?

Gruß
Dieter
Antworten Top
#2
Manchmal werden eigentlich gelöschte Bereiche mitgespeichert, manchmal auch wieder nicht.
Manchmal werden aus Versehen oder auch gewollt zwei unterschiedliche Datei-Versionen gespeichert.
Im Hauptspeicher reserviert eine Datei grundsätzlich mehr, damit Excel schneller rechnet (dateiabhängig).
Wenn Du Deine Datei per Erstellungsmakro baust (also ohne "Rückgängig" zu verwenden), hast Du die exakte und richtige (Abspeicher-)Dateigröße.
Die kannst Du noch verringern, indem Du nur Daten speicherst und die Formeln per Erstellungsmakro nach dem Öffnen dranhängst (und vor dem Speichern löschst).
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#3
Hallo LCohen,

"Manchmal"? Also ohne ersichtlichen Grund? Es wurde nur im xlsx-Format gespeichert.
Mich wundert, dass sich der Speicherplatz anscheinend willkürlich und dann auch nur 1 x erhöhte.
Mit "Erstellungsmakro" kann ich leider nichts anfangen. Ist ja auch egal.
Die Datei ist so klein, dass man sie problemlos per E-Mail versenden kann.

Dieter
Antworten Top
#4
"Erstellungsmakro" ist eine Wortschöpfung von mir.

Das folgende Makro baut eine neue Tabelle mit Testdaten und vergleicht 4 Alternativen von Auswertungsformeln. Benötigt eine knappe Minute.

Sub PerformanceArrayMax()
Workbooks.Add xlWorksheet: d = [A1:G1]: e = Split("0 0 0 0 0 0 1 1")
[C1] = "Formel": [C2] = "Zeit"
a = "RC1:R[999999]C1": b = Replace(a, "C1", "C2"): c = a & "-" & b
[A:B].Formula = "=TRUNC(RAND()*6)": [A:B].Value = [A:B].Value
d(1, 4) = "=SUMPRODUCT(--SUBSTITUTE(" & c & ",""-""&ABS(" & c & "),0))"
d(1, 5) = "=SUMPRODUCT((" & a & ">" & b & ")*(" & c & "))"
d(1, 6) = "=SUM(IFERROR(--SUBSTITUTE(" & c & ",""-"",""#""),0))"
d(1, 7) = "=SUM(IFERROR(EXP(LN(" & c & ")),0))"
For j = 4 To 7
Cells(1, j) = IIf(e(j), "{", "'") & d(1, j) & IIf(e(j), "}", "")
a = Timer
With Cells(3, j)
If e(j) Then .FormulaArray = d(1, j) Else .FormulaR1C1 = d(1, j)
.Resize(30, 1).FillDown
End With
Cells(2, j) = Timer - a
With Range(Cells(4, j), Cells(32, j)): .Value = .Value: End With
Next
End Sub
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste