Langsame Excel-Datei
#11
Hallo! 
So viele Antworten, danke euch erstmal!

@Klaus-Dieter: 
1. Zur Tabelle: Spielt das denn eine Rolle, wenn ja niemals Zeilen hinzugefügt werden? Ich benutzte immer 1-36, die werden nur mit dem Makro von "Klassenliste" ausgeblendet oder eben nicht, je nachdem, wie viele in der Klasse sind.
2. Zur Struktur: Ich weiß nicht, ob es daran liegt, dass du keine Beispieldaten hattest und es dann nicht gut zu erkennen war, aber ich würde sagen, dass da schon eine klare Struktur ist. Schau bitte mal in die neue Beispieldatei oder sag mir gerne ansonsten genauer, was du damit meinst. Kurze Erklärung dazu: Das wäre eine Beispielliste für eine Klasse mit 20 Schülern, von denen 5 die Klassenarbeit mitgeschrieben haben. In I1-R1 habe ich die Aufgabennamen eingetragen, in I37-R37 die maximalen Punktzahlen und dann in die Zeilen der Schüler jeweils beispielhaft Punkte. Was Excel dann für mich macht ist:
a) Gesamtpunktzahl errechnen und mir der Notentabelle abgleichen, Note festlegen
b) Gesamtpunktzahl pro Teilaufgabe errechnen, automatisch erkennen, welche Teilaufgaben zusammengehören und dann von den Gesamtaufgaben ebenfalls den erreichten Schnitt berechnen (damit ich weiß, was wir nochmal üben müssen)
c) Einige Auswertungen wie Notenschnitt, die Diagramme, höchste und niedrigste erreichte Punktzahl usw.
d) Das für mich wichtigste: Mit einem Makro werden alle Daten automatisch meine Word Musterlösung übertragen und daraus für jeden Schüler eine individuelle Musterlösung mit den eigenen Punkten erstellt. Das kann aber hiermit nichts zu tun haben, da die langsame Bearbeitung auch bei deaktivierten Makros auftritt, also ist das hier egal.

@Shift-Del: Ja, genau wegen solchen Sachen habe ich mich an euch gewandt, ich habe in meinem Beruf abgesehen von dieser Tabelle nichts mit Excel zu tun und mir hat auch nie jemand irgendwas beigebracht, das was ich weiß ist nur, was ich mir zusammengesucht habe. Deine Tipps sind sicher gut gemeint, aber so fällt es mir erstmal schwer, damit etwas anzufangen - kannst du mir an einem konkreten Beispiel zeigen, was du z.B. bei den Matrixformeln ändern würdest? Wenn ich ein Beispiel sehe, könnte ich das vermutlich auf den Rest übertragen.

@Ralf: Danke, dass du mithelfen möchtest. Ich muss sagen, dass ich deine Formulierung etwas seltsam finde ("Wenn du keine Lust hast ..." - ich habe doch nirgends gesagt, dass ich nicht bereit bin, ein Beispiel auszufüllen, wenn das gewünscht ist. Das wirkt unnötig feindselig, ich weiß nicht, warum) Ich habe für Klaus eins erstellt, wo du mal reinschauen kannst, wenn du etwas weiteres benötigst, bekommst du das auch gerne. Zum Wunsch der Erklärung habe ich oben was an Klaus-Dieter geschrieben, wenn du irgendwo weiter Infos benötigst, kann ich dir das aber gerne noch detaillierter erklären.

@Slowboarder: Das hört sich nach einem super Tipp an, genau auf sowas hatte ich gehofft! Heute abend komme ich nicht mehr dazu, aber ich probiere das baldmöglichst mal aus, danke dir!

Liebe Grüße! Heart


Angehängte Dateien
.xlsm   Vorlage 2024 4 KL - Beispiel.xlsm (Größe: 1,39 MB / Downloads: 19)
Antworten Top
#12
(22.08.2025, 19:56)MartinaS schrieb: @Ralf: Danke, dass du mithelfen möchtest. Ich muss sagen, dass ich deine Formulierung etwas seltsam finde ("Wenn du keine Lust hast ..." - ich habe doch nirgends gesagt, dass ich nicht bereit bin, ein Beispiel auszufüllen, wenn das gewünscht ist. Das wirkt unnötig feindselig, ich weiß nicht, warum) Ich habe für Klaus eins erstellt, wo du mal reinschauen kannst, wenn du etwas weiteres benötigst, bekommst du das auch gerne. Zum Wunsch der Erklärung habe ich oben was an Klaus-Dieter geschrieben, wenn du irgendwo weiter Infos benötigst, kann ich dir das aber gerne noch detaillierter erklären.

Das ist nicht feindselig. Wenn Du den Motorschaden Deines Autos reparieren lassen willst, bringst Du doch auch das ganze Aiuto hin und nicht nur das Ersatzrad, oder? Eigentlich logisch...
Auf meine Bitte, mal zu erklären, was Du willst, bist Du auch nicht eingegangen...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#13
@Ralf: Den Vergleich finde ich nicht ganz zutreffend. Wenn mein Auto [die Excelvorlage] ein Problem hat, bringe ich es zur Werkstatt [zu euch], wo ich von meinem Problem berichte, so wie es eben ist [die Vorlage]. Wenn der Mechaniker dann fragt, ob ich ihm das Geräusch nachmachen kann, ihm bei einer Probefahrt zeigen kann was ich meine oder ihm die genaue Stelle zeigen kann [Zusatzinfos oder Beispiele liefern], dann mache ich das natürlich gerne, wenn er danach fragt. Wenn er mir dann von Anfang an unterstellen würde, dass ich zu faul wäre, mit ihm zu fahren [ein Beispiel zu liefern], ohne, dass ich irgendwas derartiges gesagt habe, würde ich das als unfreundlich empfinden. 
Nur das Ersatzrad zu liefern wäre vergleichbar damit, wenn ich nur eine Zeile geliefert hätte statt der gesamten Datei. Außerdem zeigen ja die Beiträge von Slow und Shift-Del, dass meine Informationen durchaus ausreichend waren, um hilfreiche Tipps geben zu können. Wie gesagt, ich habe überhaupt kein Problem damit, dass du ein Beispiel möchtest, aber es wäre doch nicht schwer gewesen, stattdessen "Schick mal bitte ein Beispiel", zu schreiben, oder? Das wäre zielführender, freundlicher und sogar kürzer, daher frage ich mich, warum du dich für die andere Variante entscheidest.

Zitat:"Auf meine Bitte, mal zu erklären, was Du willst, bist Du auch nicht eingegangen..."
Zitat:"Zum Wunsch der Erklärung habe ich oben was an Klaus-Dieter geschrieben, wenn du irgendwo weiter Infos benötigst, kann ich dir das aber gerne noch detaillierter erklären."

Ich bin hier, weil ich Hilfe möchte, nicht, um mich zu streiten, daher lasse ich es mit dieser Antwort was das angeht jetzt gut sein. Wenn du etwas konstruktives beizutragen hast, freue ich mich darüber, falls nicht, danke ich dir trotzdem, dass du reingeschaut hast!  Blush
Antworten Top
#14
@Slowboarder: Ich habe deinen Tipp umgesetzt (allerdings verstehe ich deinen Verbesserungsvorschlag nicht ganz, ich habe es so geändert: 

SUMME(I37:INDEX(I37:BB37;1;$D$73)) Das funktioniert gut, deine Version hat bei mir nicht geklappt. Aber egal, so wäre es jedenfalls ohne Bereich.Verschieben. Ich habe das auf alle anderen Stellen übertragen, in denen ich die Funktion verwendet hatte. Gefühlt würde ich sagen, dass es dadurch schon leicht besser geworden ist, aber hakt immer noch sehr auf dem Laptop. Gibt es noch weiteres in der Art, was ich versuchen kann? Ich habe die Datei nach den anderen hier genannten volatilen Funktionen durchsucht, aber weitere konnte ich nicht finden.

@Ralf: Was ich noch vergessen hatte zu erwähnen: Ich habe die Überflüssigen Ereignisse ebenfalls gelöscht, wie von dir empfohlen. Danke, ich wusste nicht, dass das ein Problem ist, das waren Überreste von Fehlschlägen. Aber ich hatte ja eingangs erwähnt, dass das Problem auch auftritt, wenn Makros deaktiviert sind, also können die VBA-Zeilen nicht der Hauptübeltäter sein, oder?
Antworten Top
#15
Hallo Marina,

da du eh schon mit VBA arbeitest mal eine kleine UDF:

in ein allgemeines Modul:
Code:
Public Function PUNKTE(BereichZeile As Range, Spaltenzahl As Long)
    PUNKTE = WorksheetFunction.Sum(Range(BereichZeile.Cells(1, 1).Address, BereichZeile.Cells(1, Spaltenzahl).Address))
End Function

dazu die Formel in C2 im Blatt K1:
Code:
=PUNKTE(Tab_K1[@[1a]:[*100]];D$73)
Da dieser Bereich im Listobjekt liegt, pflanzt Diese sich selbst fort.

In Zelle C37 dann die Formel angepasst so:
Code:
=PUNKTE($I$37:$DD$37;D73)
Damit ist eine valide Sache weg. Ich kann mir aber nicht vorstellen, dass die paar validen Formeln hier die Ursache sind. Da gibt es sicherlich noch ganz andere Sachen, welche auf Eingaben reagieren und zu auffälligen Laufzeiten führen.

Gruß Uwe
Antworten Top
#16
Hallo Martina,

ich versuche mal deine Punkte abzuarbeiten, damit du verstehst, wie ich zu meiner Einschätzung komme. Zunächst einmal eine grundsätzliche Anmerkung: bei den Excelanwendern kann man zwei Fraktionen unterscheiden, wenn man mal Dinge wie PowerQuery und PivotTabellen außen vor lässt. Das sind zum einen die, die mit Formeln arbeiten und da wahre Wunder produzieren können. Dann gibt es die VBA (Makro)-lastigen, zu denen ich zweifellos gehöre. Das Vermischen von Formellösungen und Makros versuche ich zu vermeiden. Das ist aber nur so ein Gefühl, dass das nicht gut ist. Nun zu deinen Punkten:

1. Durch das vorausfüllen des Bereichs mit immerhin 245 Formeln, hast du einen Bereich, in dem, bei der Verwendung von volatilen Funktionen, alles berechnet wird, ohne Rücksicht darauf, ob es Inhalte gibt oder nicht. Nicht nur aus diesem Grund vermeide ich es grundsätzlich, Listenbereiche "auf Vorrat" mit Formeln zu bestücken. (Hier hätte ich ein Makrogeschrieben). Das Ausfiltern der Zeilen ohne Inhalt ist nur Kosmetik.
Was es mit dem Bereich der Spalten I bis DD auf sich hat, hat sich für mich noch nicht erschlossen, geht aber sicher auch in den Bereich vorausfüllen von Listenbereichen, dazu hatte ich mich ja schon geäußert.

2. Meine Kritik hinsichtlich der Struktur geht Hauptsächlich in die Richtung, dass hier viele, verschiedenen Listen recht wahllos auf dem Blatt verteilt sind. Das gilt ebenso für die Diagramme. So etwas lagere ich auf eigene Blätter aus.

Zusammenfassend kann man sagen, dass für die langsame Arbeit der Datei verschiede Faktoren verantwortlich sind, die sicher auch ein Zusammenspiel entwickeln. Als erstes würde ich mal alle volatilen Funktionen rausschmeißen, wie das ja schon öfter angemerkt wurde. Dann kann man sehen, was das gebracht hat. Dein Projekt ist sicher über einen längeren Zeitraum "gewachsen". So etwas vergleiche ich immer mit einem alten Haus, wo im Laufe der Jahre immer wieder An- und Umbauten vorgenommen wurden. Das hat dann zwar ein Ergebnis, aber wenn man das neu anfangen würde, würde man vieles anders machen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#17
Hallo Martina,
Bei produktiv Arbeitenden nervt 1 Sekunde wirklich. Wenn Du die Möglichkeit hast, lasse deine Excel Datei einmal auf einem anderen Laptop oder Desktop laufen. Auch die Verwendung einer anderen Excel-Version (365, online, V8 etc.) könnte helfen. Excel und seine Versionen nutzen die CPU auf eigene, unterschiedliche Art und Weise. Falls dabei die Datei wieder normal arbeitet, liegt es vermutlich nicht an all den Formeln, Befehlen, Makros etc.
Gruss Ernesto
 
P.S.: Ich habe das gleiche Problem. Auf meinem neuen Desktop braucht jede Excel Bewegung 7 (sieben!) Sekunden. Zurück auf meinem alten Desktop läuft die Datei weiterhin wie Speedy Gonzales….
Antworten Top
#18
Hallo Martina,

da du ja Excel365 hast, hast du schon die in dieser Version enthaltene Leistungsprüfung ausprobiert?
Menüband > Tabulator "Überprüfen" > Gruppe "Leistung" > Button "Leistung prüfen"

Ferner ist mir aufgefallen, dass du im Arbeitsblatt "K1" ein schwebendes Grafikobjekt "Grafik 7" hast, in welches der Datenbereich K1!C43:H80 eingeblendet/importiert wird. Falls du dieses Grafikobjekt nicht benötigst, sollte man es auch entfernen - es aktualisiert sicher auch stets die Daten aus diesem Bereich, was somit CPU-Zeit frisst.

Um all die Objekte, Bereiche, etc. zu überprüfen/zu finden, gibt es einen weiteren nützlichen Button:
Menüband > Tabulator "Ansicht" > Gruppe "Anzeigen" > Button "Navigation"
Gruß Anton.

Windows 10 64bit
Office365 32bit
Antworten Top
#19
Hallo Martina,

ich habe mir Deine Datei angeschaut und eine kleine Analyse gemacht.

Es gäbe schon einige Formeln zu verbessern, aber das bringt nicht die Lösung. 
BTW, eine Formel durch eine UDF zu ersetzen bringt bei Deinen Formeln nichts und bewirkt hier das Gegenteil.
Du hast Dir mit dem Kameratool Zellbereiche abfotografiert und läßt Dir diese anzeigen, das ist das eigentliche Problem.

Öffne Deine Datei und dann läßt Du dieses Makro einmal laufen (oder Du entfernst selber alle "Grafik" Objekte von Hand in ALLEN ! Blättern):
Code:
Sub Test()
  Dim Ws As Worksheet
  Dim Sh As Shape
  For Each Ws In Worksheets
    For Each Sh In Ws.Shapes
      If Sh.Type = msoPicture Then
        Sh.Delete
      End If
    Next
  Next
End Sub

Danach wird Deine Datei bis zu 700% schneller berechnen.

Problem gelöst?

Andreas.
Antworten Top
#20
Hallo Martina,

als Ergänzung zu Antons und Andreas Ausführungen: !Langsames Excel (3) - Kamerafunktion

Gruß, Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: