Anzeige
Archiv - Navigation
1540to1544
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Speed Excel 2010 vs 2016

Speed Excel 2010 vs 2016
13.02.2017 11:53:27
ThomasCrown
VBA Schleife 48 Zeilen, 24 Spalten (bis zu) 10 sheets.
suche in Zelle nach Wert (numerisch) wenn gefunden errechne aus Spalte das Datum (z.B. Spalte 6-26 = 01.01.2017) und aus Zeile die Uhrzeit (je Zeile 15Min).
Ergebnisausgabe in userform
in diesem Fall werden 4 Termine gefunden und angezeigt.
Verarbeitungszeit:
auf dem selben Rechner unter Excel 2010(14) 8 Sekunden unter 2016(365) 16 Sekunden.
diverse ähnliche Routinen gleiche Geschwindigkeitsunterschiede.
Frage: ist bekannt, dass 2016 soviel langsamer ist ?
elitegroup I7(3400) 16GB(1600)
Grüße TC

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speed Excel 2010 vs 2016
13.02.2017 12:16:42
Michael
Hi,
ich habe nur 2013, aber 48 Zeilen und 24 Spalten ist ja quasi gar nichts...
Wenn Du den kompletten Code mal hochlädst, sind sicher Optimierungen möglich.
Schöne Grüße,
Michael
AW: Speed Excel 2010 vs 2016
13.02.2017 12:30:29
fcs
Hallo Thomas,
die neueren Excel-Versionen neigen -warum auch immer (gegrüßt/verflucht seien hier die Programmierer bei Mikrosoft)- wesentlich häufiger zu Neuberechnungen und anderen Hintergrundaktionen.
Des halb muss man wesentlich genauer darauf achten, dass zu Beginn eines Makros die Bildschirmaktualisierung und Ereignismakros deaktiviert werden und der Berechnungs-Modus in einer Variablen zwischengespeichert auf manuell gesetzt wird. Am Ende der Makroausführung setzt man dann alles wieder zurück.
LG
Franz
Anzeige
Das gabs auch schon zwischen xl2000 und xl2002
13.02.2017 13:20:16
lupo1
http://xxcl.de/foreign/excelstuff.htm
Ab 2002 wurde ein einziger Abhängigkeitsbaum aufgebaut. Was danach passierte, weiß ich nicht. Vermutlich kann man zu Änderungen der Kalkulationsengine von Excel über die Zeiten im Internet einiges finden.
Bei 2000 wurden alphabetisch angeordnete Arbeitsblätter in der Reihenfolge gerechnet.
Wer komplexe Modelle statt mit Formeln mittels VBA rechnen lässt, ist von dem allen unbeeindruckt, da er es selbst in der Hand hat.
AW: Das gabs auch schon zwischen xl2000 und xl2002
13.02.2017 13:41:08
fcs
Hallo lupo1,
Wer komplexe Modelle statt mit Formeln mittels VBA rechnen lässt, ist von dem allen unbeeindruckt, da er es selbst in der Hand hat.
Nach "komplex" sieht es beim Fragesteller eigentlich noch nicht wirklich aus.
Vieles in Sachen Makro-Beschleunigung kann man schon mit den 3 von mir beschriebenen Maßnahmen erreichen.
Selbst in der Hand hat man es erst bei entsprechenden VBA-Kenntnissen bzw. Programmiersupport.
LG
Franz
Anzeige
AW: Das gabs auch schon zwischen xl2000 und xl2002
14.02.2017 08:39:27
ThomasCrown
Da schließe ich mich fcs an:
letztlich vergleicht die Routine den Inhalt von nicht mehr als 6000 Zellen mit einer Zahl. Entspricht der Inhalt der Zelle der Zahl, "schaut" die Routine nach, in welcher Zeile/Spalte die Zelle liegt und liest daraus das Datum (steht über der Spalte in einer anderen Zelle) und die Uhrzeit (steht in einer Spalte am Blattanfang). Das ganze ist ein Terminkalender mit fünf-Tage-Wochen für unsere Praxis.
Ich überlege, mal die Zellen in Variable-Arrays vorzuladen, glaube aber, dass der Vorgang dadurch nicht beschleunigt wird, weil die Zellen ja dennoch 'angefasst' werden müssen.
Die einzigen Formeln auf den Blättern sind der Verweis auf die letzte Datumszelle des Vorblatts (=Vorblatt/Zelle) und dann von Datumszelle zu Vordatumszelle (=Zelle). Aber die werden eigentlich nicht angefasst.
Mich hat halt der Speed-Unterschied 2010 - 2016 interessiert.
Problematisch wird's, wenn 2010 überhaupt nicht mehr unterstützt wird. Telefonaktivierung geht ja jetzt schon nicht mehr. Wurde nötig, weil ich den Arbeitsspeicher erweitert und eine SSD verbaut habe.
Also aus der Bucht für kleines Geld 2 neue Serials erstanden.
Anzeige
AW: Das gabs auch schon zwischen xl2000 und xl2002
14.02.2017 08:43:29
ThomasCrown
Oooops
Grußformel vergessen
Also:
Grüße aus dem kalten Berlin
Thomas
AW: Das gabs auch schon zwischen xl2000 und xl2002
14.02.2017 14:27:17
fcs
Hallo Thomas,
du wirst dich wundern, wie die Post abgeht, wenn du mit Datenarrays arbeitest - bei ca. 6000 Zellen ist das schon merklich. Denn für das Füllen des Arrays brauchst du nur jeweils eine Anweisung.
Du kannst auch die Zeile und Spalte mit Zeit bzw. Datum gleich mit ins Array übernehmen und die For-Next-Schleifen für das Vergleichen bei 2 Starten.
Dann erfolgt deine Auswertung komplett ohne weitere Zellzugriffe, die Zeit fressen.
Gruß
Franz
stimmt, hier ein Beispiel für Array-Speed
14.02.2017 18:32:21
lupo1
32000 Zeilen (in heute vermutlich nur noch 0,1 Sekunden):
http://xxcl.de/0052.htm (unten, nach der Tabelle)
Anzeige
AW: stimmt, hier ein Beispiel für Array-Speed
15.02.2017 11:18:42
ThomasCrown
..... geht damit los, dass "start" nicht definiert wurde ;-)
aber ich habe das eben mal durchgespielt. Für unseren Terminkalender wenig praktikabel. Wir machen täglich für bis zu 50 Patienten bis zu 10 Monate im Voraus neue monatliche Termine. Mit jedem neuen Termin (falls der PC mal abstürzt) wenigstens aber am Ende der jeweiligen Terminierung müsste ich also die gesamten Arrays neu einlesen um die Suchzeit von ca 6 Sekunden zu verringern. Das wären dann ca 50 sheets mit 30 Spalten und 50 Zeilen (= 75.000 Zellen). Dazu mit jedem Neupatienten wieder komplett neu einlesen.
Und manchmal müssen wir Termine seit dem 05.01.2015 suchen (Rechnungsstellung). Um das in Arrays zu laden brauche ich 195.000 Zellen. Wie erwähnt, mindestens nach jeder abgeschlossenen Terminierung.
Beispiel:
 suchSpalte = activecell.column
suchZeile = activecell.row
for Blatt = X to Sheets.Count -10
for spalte = suchSpalte to 122 step 4
for Zeile = suchZeile to 58
if suchZeile = 50 then suchzeile 7
next
if suchSpalte = 122 then suchSpalte = 6
next
bei einer routine:
if gefunden = 6 then raus
bei der anderen suchen bis Sheets.Count
next
raus: Ausgabe in listbox
das sind dann 6 Sekunden bzw unter xl2016 12 Sekunden
(ist unter xl2010 zu vertreten)
Anzeige
stimmt, hier ein Beispiel für Array-Speed
15.02.2017 13:56:52
Michael
Hi,
da rächt sich halt eine nicht von vornherein "gut programmierbar" gestaltete Datenstruktur (je "gleichartige Daten" in einzelnen Listen, Stichworte u.a. "Normalisierung", "Redundanz").
Das Gehoppel mit den Spalten klingt jedenfalls nicht danach.
Eine gewisse Abhilfe könnte Excels .find sein, aber letztlich läßt sich eigentlich nur was Vernünftiges dazu sagen, wenn man das ganze Makro samt Daten sieht - das klingt für mich danach, daß man evlt. einen Dienstleister vor Ort drauf ansetzen sollte.
Schöne Grüße,
Michael
P.S.: vielleicht würde es ja schon helfen, "historische" Daten in besser durchsuchbare Listenform(en) zu überführen, als Archiv.
Anzeige
AW: stimmt, hier ein Beispiel für Array-Speed
15.02.2017 16:39:58
ThomasCrown
gehoppel gefällt mir :-)
Spalte=Ausgangsfarbe von Spalte2=Patientenname zu Spalte3=Patientenindex
(falls der Termin) (in Klarschrift)
(wieder frei wird) (man will den Pat.)
(weiß=freier Termin) (ja ansprechen)
zugehörig für jeweils einen von 6 Behandlern an 5 Tagen
pro Zeile 15 Min Behandlungszeit
is ganz einfach wenn man's weiß
wenn ich also in Zeile 14 suche muss ich ja in der nächsten (step 4) Spalte wieder auf Zeile 7 anfangen
und auf dem nächsten sheet statt in der 28. Spalte wieder Spalte 6 (1. index-Spalte) nehmen
Aber das Thema war: ist xl2016 wirklich langsamer und das wissen wir jetzt ja.
Warum auch immer
schöne Grüße Thomas
ach übrigens durch die neuen Serials rausgefunden: "keine telefonische Aktivierung möglich" ist ein bug
"winzigweich" arbeitet dran
Anzeige
stimmt, hier ein Beispiel für Array-Speed
16.02.2017 12:16:20
Michael
Hi,
das mit der tel. Aktivierung hatte mich schon richtig geärgert, denn ich wollte noch ein XL 2003 installieren, aber vielleicht geht das ja doch noch...
Naja, das mit den Farben ist auch so eine Sache: es ist *nicht* "datenbankmäßig sauber", Farben als Kennzeichen zu verwenden.
"Sauber" hieße, derartige Kennzeichen in zusätzliche Hilfsspalten zu verfrachten, die man makro- oder formelmäßig easy auswerten kann...
... und natürlich auch darstellungsmäßig (durch Färben von Zellen *in Abhängigkeit* von Kennzeichen).
Es geht darum, gedanklich "die reinen Daten" und deren "Ansicht" zu trennen.
Klar: nach jahrelangem "Wildwuchs" ist das nicht in zwei Stunden "gesäubert".
Na dann, viel Spaß beim Excel-Hoppeln,
Michael
Anzeige
Kannst Du das mal mit normalen Formeln ...
13.02.2017 15:11:24
lupo1
... bei beiden Versionen nachstellen, Thomas?
Also bei 4 Spalten mit je 1.000.000 Formeln herunterkopierend die Zeit nehmen?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige