Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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

Tabellen schnell halten???

Tabellen schnell halten?
Marcy
Hallo Forum,
gibt es eigentlich eine Regel an die man sich halten sollte, um Tabellen bei der Berechnung schnell zu halten?
Ich habe oft das Problem, dass ich für irgendwen in der Firma eine Tabelle erstelle, der NULL Excel kann.
Dann kopiere ich die Formeln direkt weit runter.
Jedoch bei jeder Filternutzung, rechnet die Tabelle recht lang, das nervt.
Ganz simples Beispiel:
Spalte A Maschinennummer (wird vom Mitarbeiter eingetragen)
Spalte B Auslieferungstermin (wird vom Mitarbeiter eingetragen)
Spalte C-E =TEXT(B2;"JJ") usw. ->Datum aus B trennen in Jahr, Monat, Tag zur Sortierung nach Datum etc.
Spalte F Formel Tage bis zum Auslieferungstermin.
Wie mache ich es, dass die Formeln in den Spalten C-F erst kommen, wenn in der jeweiligen Zeile in Spalte A ein Eintrag getätigt wurde?
Erst heute habe ich eine Tabelle erstellt, die für 5000 Maschinen die Formeln schon hat.
Mit viel Glück hält die so 5 Jahre, rechnet aber auch 5min bei jeder Filternutzung, obwohl erst 20 Maschinen eingetragen sind.
würde man es hiermit machen? Statt Date, Time, Application.UserName die Formeln?
Bin zuhause, kann es mit dem MAC leider nicht testen, suche allerdings seit Stunden nach der Lösung.

Private Sub Worksheet_Change(ByVal Target As Range)
spalte = Target.Column
zeile = Target.Row
If spalte = 2 And zeile >= 5 And zeile 

Danke Gruß Marcy

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Tabellen schnell halten?
19.10.2011 23:47:18
fcs
Hallo Marcy,
eine Rechenzeit von 5 Minuten bei 5000 Zeilen ist schon sehr extrem. Da muss eigentlich noch irgendetwas anderes im Argen sein oder es sind Formeln im Einsatz, die lange Rechenzeiten erfordern.
Im Prinzip ist dein Ansatz korrekt. Wenn du eh schon zu makrounterstütztem ausfüllen der Tabelle übergehen willlst, dann solltest du die Werte ,die sich nicht mehr ändern (bei dir Jahr, Monat, Tag der Auslieferung), direkt fest in die Tabelle schreiben und keine Formel.
Die Spalten C bis E dann ggf. als Text formatieren, wenn die führenden Nullen bei in die Zellen übernommen werden sollen.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
Dim spalte As Long, zeile As Long
Dim Zelle As Range
spalte = Target.Column
zeile = Target.Row
For Each Zelle In Target.Cells
If Zelle.Column = 2 And Zelle.Row >= 5 Then
If IsDate(Cells(Zelle.Row, 2)) Then
Cells(Zelle.Row, 3) = Format(Target, "YY")
Cells(Zelle.Row, 4) = Format(Target, "MM")
Cells(Zelle.Row, 5) = Format(Target, "DD")
Cells(Zelle.Row, 6).FormulaR1C1 = "=RC[-4]-TODAY()"
ElseIf Zelle = "" Then
Cells(Zelle.Row, 3).ClearContents
Cells(Zelle.Row, 4).ClearContents
Cells(Zelle.Row, 5).ClearContents
Cells(Zelle.Row, 6).ClearContents
Else
MsgBox "Eingabe in Spalte B ist kein Datum"
End If
End If
Next
End Sub

Die For-Next-Schleife stellt sicher, dass, wenn Eingaben für mehrere Zeilen gemacht werden (z.B. Kopieren des Datums in Spalte B), in allen Zeilen die Werte und Formeln eingetragen werden.
Anzeige
AW: Tabellen schnell halten?
20.10.2011 09:31:26
Marcy
Hallo Franz,
5 min ist übertrieben.
Damit wollte ich ausdrücken, dass es mir zu lange dauert.
Habe in den jeweiligen Zellen jetzt =WENN(B2>=1;TEXT(.....);"")~f~
So werden die Zellen wenigstens leer angezeigt. Rechnen meiner Meinung nach trotzdem.
Das hier galt als Beispiel, Problem, wie sollte es grundsätzlich bei so Vorlagen sein?
Gibt es ein Formel wie z.B.
~f~=ist in B2 nichts, dann mach überhaupt nichts und betrachte die Zelle als leer, ansonsten =TEXT(...) oder was auch immer.
Bei Tabellen für mich selbst, kopiere ich mir die Formeln nach Bedarf runter.
Aber bei nicht ExcelAnwendern ist das leider schon zu viel verlangt, bzw. für die zu kompliziert.
Gruß Marcy
Anzeige
AW: Tabellen schnell halten?
20.10.2011 11:36:01
Ass
Hallo Marcy,
ja, 5000 Datensätze sollten für excel nun wirklich kein Problem sein. Wenn die Berechnung länger als nur den Bruchteil einer Sekunde dauert, dann ist noch was anderes "faul". Vielleicht sind weiter Ereignisse (change oder selectionchange) programmiert, die den Verkehr aufhalten.
Oder es gibt an anderer Stelle Berechnungen, die auf deine Zellen Bezug nehmen, oder du hast viele volatile Funktionen
http://www.online-excel.de/excel/singsel.php?f=171
Mach doch aus deinen Spalten eine Liste!
http://www.online-excel.de/excel/singsel.php?f=167#s14
Zitat:
Automatische Formelübernahme
Wenn Listenspalten eine Formel enthalten, wird diese automatisch eingefügt, wenn sich der Bereich über die Einfügezeile erweitert oder Zeilen in die Liste eingefügt werden.
Zitat Ende
Ja- mit der wenn-Funktion Berechnungen anzuzeigen wenn bestimmte Bedingungen erfüllt sind ist durchaus üblich.
Gruß
Rudi
Anzeige
AW: Tabellen schnell halten?
20.10.2011 12:58:11
Daniel
Hi
ein Zeitfresser ist das gepostetete Makro.
die Eventmakros wie Change und SelectionChange haben die Eigenart, daß sie sich selbst aufrufen, wenn sie per Makro das entsprechende Event auslösen. Dann kann man sich schnell in einer Endlosschleife verfangen.
Das vermeidest du zwar durch die Eingangsprüfung (IF Spalte....) trotzdem ruft sich das Change-Makro 3x selbst auf.
Das Vermeidet man, in dem man innerhalb vom Makro die Events deaktiviert und am Ende wieder aktiviert (sonst bleiben die Events abgeschlaltet:

Private Sub Worksheet_Change(ByVal Target As Range)
spalte = Target.Column
zeile = Target.Row
If spalte = 2 And zeile >= 5 And zeile Application.EnableEvents = False
Range("Q" & zeile) = Date
Range("R" & zeile) = Time
Range("P" & zeile) = Application.UserName
 Application.EnableEvents = True  End If
End Sub
an sonsten hängts halt von deinen Formeln ab.
Neben den bereits genannen volatilen Funktionen die sehr häufig berechnet werden, gibt es auch einfach Funktionen, die bei grösseren Datenmengen einfach länger zum Berechnen brauchen, beispielsweise: ZählenWenn(), SummeWenn(), SummenProdukt(), SVerweis(;;;FALSCH); Vergleich(;;FALSCH), alle Matrix-Funktionen
Wenn man diese Funktionen in grosser Zahl einsetzt und dann vielleicht auch noch volatil gemacht hat, dann dauerts halt einfach ein bisschen länger.
Hier hilft nur, die Formeln zu reduzieren oder durch Hilfsspalten zu vereinfachen.
Beim SVerweis und Vergleich kann man auch schnellere Varianten einsetzen ( 4. bzw 3 Parameter = WAHR oder 0), allerdings erfordert dies ein Sortieren der Datentabelle.
Möglichkeiten zum optimieren gibt bestimmt, aber ohne kenntnis der Formeln und der Datenstruktur ist es nich möglich, konkrete Tips zu geben.
Gruß Daniel
Anzeige
AW: Tabellen schnell halten?
24.10.2011 19:43:45
Marcy
Hallo Antworter,
bei meiner Frage ging es eher um allgemein.
Es handelte sich nur um ein Beispiel.
Wie schon erwähnt, erstelle ich oft Liste für welche, die noch weniger können wie ich :-) (wenn ich sehe was ihr so könnt, komme ich mir wie ein Anfänger vor).
Meine Layouts sehe ich dann meistens für einige tausend Einträge vor.
Die Rechnungen dauern mir dann oft zu lange, auch wenn es sich nur Sekunden handelt.
Daher würde wollte ich wissen, wie man so Layouts aufbaut, damit man sie möglichst schnell hält.
Marcy

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige