114298
Goto Top

Beim öffnen aktualisieren verhindern

Hallo zusammen,

ich habe da ein kleines Problem und ich hoffe ihr könnt mir helfen face-smile

Ich habe eine riesige Exceldatei mit ziemlich vielen Formeln (Mit den Formeln hole ich Daten aus einer Datenbank).
Beim Öffnen der Datei rechnet Excel erst einmal eine ganze weile.
Wie kann ich das am besten abstellen?

Private Sub Workbook_Open()

Application.Calculation = xlCalculationManual
Application.CalculateBeforeSave = False

EndSub

...funktioniert leider nicht bzw. nur wenn die Datei schon geöffnet ist :/


Grüße
Memo

Content-Key: 234324

Url: https://administrator.de/contentid/234324

Printed on: April 16, 2024 at 08:04 o'clock

Member: Meierjo
Meierjo Apr 03, 2014 at 06:38:21 (UTC)
Goto Top
Hallo Memo66

Und wenn du den Code in ein Auto open schreibst??

Sub auto_open()
Application.Calculation = xlCalculationManual
Application.CalculateBeforeSave = False
End Sub

Gruss meierjo
Mitglied: 114298
114298 Apr 03, 2014 at 07:36:58 (UTC)
Goto Top
Hi meierjo,

vielen Dank für deine Rückmeldung.

Das ding ist, wenn ich die Datei öffne, wird das Blatt nicht vollständig angezeigt und unten rechts sehe ich wie Excel rechnet.
Wenn ich aber auf irgendeine Zelle klicke, wird das Blatt vollständig angezeigt und auch betriebsbereit.

Grüße
Memo
Member: Meierjo
Meierjo Apr 03, 2014 at 07:50:41 (UTC)
Goto Top
Hallo

Wenn ich aber auf irgendeine Zelle klicke, wird das Blatt vollständig angezeigt und auch betriebsbereit.

Heisst das, dass wen du währen dem Berechnungsvorgang in eine Zelle klickst (zB A1), das Blatt erst vollständig anzeigt wird?
Wie gross ist die Datei?
Wieviele Zellen sind befüllt?
Was heisst, rechnet eine Weile? Wie lange?
Wie ist der Pc bestückt?
Sind da Makros drin??
Wäre hiflreich, wenn du die Tabelle (zb mit Muster-Daten gefüllt) ins Netz stellen könntest.


gruss meierjo
Mitglied: 114298
114298 Apr 03, 2014 at 15:39:13 (UTC)
Goto Top
Hi,

-also wenn ich die Datei öffne, sehe ich nur weiße Felder und ich sehe unten rechts wie er rechnet. Wenn ich dann irgendwo reinklicke wird alles korrekt angezeigt und das Sheet ist ready to go.

-Die Datei ist 300KB groß mit 10 Reitern.

-Pro Blatt sind ungefähr 700 Zellen mit Formeln hinterlegt, die Werte aus einem anderen System ziehen.

-Bei fünf Minuten habe ich abgebrochen.

-Es sind Makros drin zum Formatieren ect.
Diese Makros habe ich aber auch in anderen Berichten drin und da läuft alles ohne Probleme.

Meine neuste Erkenntnis ist:
Bis auf ein Blatt habe ich alle Reiter gelöscht und das Problem besteht weiterhin. An der Menge der Daten kann es also nicht liegen zumal ich die Berechnung ja ausschalte.


Grüße
Memo
Member: Meierjo
Meierjo Apr 03, 2014 at 16:36:54 (UTC)
Goto Top
Hallo Memo66

- Also 300Kb ist nicht wirklich gross, hast du dich da verschrieben?? Wenn die Mappe wirklichnur 300 kb ist, stell sie doch ins Netz.
- Wie ziehst du den die Werte aus einem anderen System? Ist das ein anderer PC? Ueber Lan verbunden? Domäne?

Ich würde da mal den Hebel ansetzen. Versuchsweise die Daten, die gezogen werden sollen, auf den selben PC kopieren, und sehen, obs dann schneller wird.

Oder mal die Makros deaktivieren. Sind das Makros, die automatisch neu berechnen, wenn sich in einem Tabellenblatt was ändert? Wenn dem so ist, dann laufen die Makros beim berechnen natürlich ständig durch, dass könnte dann die Performance schon bremsen?

Gruss meierjo
Mitglied: 114298
114298 Apr 04, 2014 at 09:16:08 (UTC)
Goto Top
Hi meierjo,

die Datei ist wirklich nur 300Kb groß.
Sagt dir IBM Cognos TM1 was? Das ist eine multidimensionale Datenbank. Mithilfe eines Excelplugins kann ich mit Formel Daten in Excel ziehen.
Normalerweise funktionert das auch wunderbar.
Die Datei kann ich leider nicht online stellen, zu sensibel das ganze.

Ich habe das das Problem gefunden weiß aber nicht wie ich das beheben kann.

Wenn ich eine neue Excel Instanz starte, dann ist das auto berechnen an und dadurch dauert das ganze so lange. Ich habe mal folgendes versucht:

Private Sub Workbook_Open()
'
MsgBox ("test")
Application.Calculation = xlCalculationManual
Application.CalculateBeforeSave = False

End Sub

Damit ich sehe, wann der Code die Autobrechnung auf manuell stellt.

Wenn ich also eine neue Instanz starte, rechnet Excel erst fleißig und dann erst bekomme ich die msgbox angezeigt.

Wenn ich die Datei jetzt schließe und wieder in der selben Instanz öffne, funktioniert alles wunderbar weil ich ja beim ersten öffnen die Autoberechnung auf manuell gesetzt habe.

Gibt es eventuell einen Befehl, der sofort nach dem öffnen greift und dann erst dann die anderen Sachen berechnet?
Oder sollte das 'Workbook_open' eigentlich machen?

Grüße
Memo
Member: Meierjo
Meierjo Apr 04, 2014 at 09:21:20 (UTC)
Goto Top
Hallo

Und wenn du, wie ich 1. Beitrag geschrieben habe, eine auto_open Sub verwendest? Wird dann die MSGBOX vor dem berechnen angezeigt??

Gruss
Mitglied: 114298
114298 Apr 04, 2014 at 09:32:29 (UTC)
Goto Top
Hi,

dann passiert überhaupt nichts.
Nachdem Excel gerechnet hat, erscheint weder eine MsgBox noch wird die Autoberechnung auf manuell gesetzt.
Member: Meierjo
Meierjo Apr 04, 2014 at 09:42:08 (UTC)
Goto Top
Hallo

Sorry, kann grade keine Bilder hochladen, weiss nicht warum.

Den Sub Auto_open musst du in einem "allgemeinen Modul" platzieren, nicht im Modul "diese Arbeitsmappe"

Gruss