Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1456to1460
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

Lange "Ladezeiten" Excel

Lange "Ladezeiten" Excel
20.11.2015 14:36:46
Andreas
Hallo zusammen,
ich habe in meiner Exceldatei mittlerweile ein paar VBA Codes (eigentlich in zwei Tabellenblättern jeweils die unten stehenden Codes).
Der Code ist jeweils einen ToggleButton zugewiesen und kann "aus-" oder "eingeschalten" werden.
Hier ist der Code:
Private Sub ToggleButton1_Click()
If ToggleButton1 = True Then                        'wenn der Button aktiviert ist
Application.EnableEvents = False
'deine Prozedur
ToggleButton1.Caption = "Zoom aus"      'Beschriftung, wenn aktiv
ToggleButton1.BackColor = &HC0C0C0           'Farbe, wenn aktiv
Else                                    '... sonst
'deine Prozedur
ToggleButton1.Caption = "Zoom an"      'Beschriftung, wenn inaktiv
ToggleButton1.BackColor = &HC0C0C0         'Farbe, wenn inaktiv
Application.EnableEvents = True
End If
End Sub

Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
ActiveSheet.Range("A1:yx2").EntireRow.RowHeight = 30
ActiveSheet.Range("A1:yx2").EntireRow.Interior.ColorIndex = xlNone
ActiveSheet.Range("A1:yx2").EntireRow.Font.Bold = True
ActiveSheet.Range("A3:yx500").EntireRow.Interior.ColorIndex = xlNone
ActiveSheet.Range("A3:yx500").EntireRow.Font.Bold = False
Cells.WrapText = True
'ActiveSheet.Range("A3:yx500").EntireRow.AutoFit
ActiveSheet.Range("A3:yx500").RowHeight = 15
'ActiveCell.Rows.RowHeight = ActiveCell.Rows.RowHeight * 3
'Selection.Range("A3:yx500").EntireRow.AutoFit
Selection.EntireRow.Interior.ColorIndex = 36
Selection.EntireRow.Font.Bold = True
Selection.EntireRow.RowHeight = 45
Application.ScreenUpdating = True
End Sub
Der Code bewirkt, dass ich bei Anwahl einer Zelle, die gesamte Zeile "fett" mache, die Zeilenbreite vergrössere und gelb einfärbe. Dies soll dazu dienen, dass ich immer den Überblick behalte wenn ich in einer grossen Tabelle arbeite.
Jetzt muss ich immer häufiger folgendes Problem feststellen:
Egal wie ich mich in dem betroffenen Tabellenblatt bewege (per Mausklick, per Pfeiltasten, ...), die Ladezeit der Ausführung (z.B. nur Anwählen eine Zelle) beträgt 1-2 Sekunden!!
Ich habe in dem betroffenen Tabellenblatt auch eine Matrixformel über 4 Spalten und 100 Zeilen (das andere Tabellenblatt ist nicht betroffen):
=WENNFEHLER(INDEX('Tabelle1!B$2:B$104;KKLEINSTE(WENN('Tabelle1!$H$2:$H$104="X";ZEILE($2:$104)-1); ZEILE(B1)));"") 
Woran könnte es liegen, dass ich solch lange Ladezeiten habe?
Kann man das irgendwie optimieren?
Liebe Grüsse
Andreas
Vielen Dank vorab für eure Unterstützung (wie immer :-))!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lange "Ladezeiten" Excel
20.11.2015 16:01:32
Herbert
Hallo Andreas,
durch das "Worksheet_SelectionChange"-Ereignis werden bei jedem Zellenwechsel alle in dem betroffenen Sheet vorhandenen Formeln neu berechnet. Wenn dann dort, wie bei Dir, viele Matrixformeln vorhanden sind, geht der Rechner in die Knie. Vielleicht solltest Du die "Automatische Berechnung" auf "manuell" einstellen und nur bei Bedarf mit F9 oder VBA neu berechnen.
Servus

AW: Lange "Ladezeiten" Excel
20.11.2015 16:43:59
Werner
Hallo Andreas,
oder aber für deinen Code das Worksheets bevor Doubleklick Ereignis verwenden und nicht das Selektion Change.
Gruß Werner

AW: Lange "Ladezeiten" Excel
20.11.2015 20:27:33
Andreas
Hallo Herbert und Werner,
vielen Dank für die Rückmeldung.
@Herbert: Wie füge ich den "manuellen" Teil in meinen Code ein? Habe mir diesen aus dem Netz zusammengebaut und bin da nicht wirklich versiert.
@Werner: Selbe Frage an dich.. Wie und wo bette ich das Doppelklick Event ein?
Liebe Grüsse
Andreas

Anzeige
AW: Lange "Ladezeiten" Excel
20.11.2015 22:05:25
Werner
Hallo Andreas,
rechten Mausklick auf den Tabellenblattreiter der Tabelle in der sich der Code auswirken soll. Code anzeigen auswählen. Im Code Fenster Pulldown oben links Worksheet, Pulldown oben rechts BeforeDoubleClick. Den Code zwischen Private Sub und End Sub rein. Hab jetzt aber nur die Farbänderung und Fettschrift drin.
Ohne Gewähr, hab es nur kurz am Tablet runter geklimpert. Wenn es funktioniert dann sollte bei Doppelklick in eine Zelle der Spalte A die ganze Zeile gefärbt und die Schrift fett werden. Zurücksetzen durch erneuten Doppelklick in die Zelle in Spalte A.
If Target.Column > 1 Then Exit Sub 'Doppelklick wirkt sich nur in Spalte A aus
If Target.Interior.ColorIndex = 36 Then
With Target.EntireRow
.Interior.ColorIndex =xlNone
.Font.Bold = False
Else
.Interior.ColorIndex = 36
.Font.Bold = True
End With
End If
Gruß Werner

Anzeige
AW: Lange "Ladezeiten" Excel
23.11.2015 07:45:19
Andreas
Hallo Werner,
habe es gerade ausprobiert. Funktioniert nicht. Es kommt bei Doppelklick zu folgender Meldung:
"Fehler beim Kompilieren: Else ohne If"
Liebe Grüsse
Andreas

AW: Lange "Ladezeiten" Excel
23.11.2015 08:46:20
Werner
Hallo Andreas,
sorry, die Reihenfolge hatte nicht gestimmt. Nimm mal den Code.
If Target.Column > 1 Then Exit Sub 'Doppelklick wirkt sich nur in Spalte A aus
With Target.EntireRow
Cancel = True
If Target.Interior.ColorIndex = 36 Then
.Interior.ColorIndex = xlNone
.Font.Bold = False
Else
.Interior.ColorIndex = 36
.Font.Bold = True
End If
End With
Gruß Werner

Anzeige
AW: Lange "Ladezeiten" Excel
23.11.2015 10:04:49
Andreas
Hallo Werner,
Code hat sich einbetten lassen - kommt keine Fehlermeldung.
Jedoch passiert eigentlich nichts ausser dass die Zeilenbreite vergrössert wird.
Habe auch schon ausprobiert dieses "Doppelklick-Event" einfach um meinen bisherigen Code zu legen, aber dann passieren auch merkwürdige Dinge (Zelleninhalte werden trotz vorhandener Formel gelöscht - vielleicht wird die Matrixformel zerstört?).
Gibt es keine elegantere Lösung diese Ladezeiten zu umgehen? Wie könnte ich beispielsweise einbauen, dass die Formeln mit STRG+ALT+F9 nur ausgeführt werden? Also manuell aktualisieren.. dann würden die nicht bei jedem Klick in 4 Spalten à 100 Zeilen neu berechnet werden?
Liebe Grüsse
Andreas

Anzeige
AW: Lange "Ladezeiten" Excel
23.11.2015 10:33:13
Werner
Hallo Andreas,
das kann ich jetzt absolut nicht nachvollziehen. Wenn du meinen Code 1:1 übernommen hast dann stellt sich mir die Frage, weshalb bei dir die Spaltenbreite verändert wird, diesbezüglich ist in meinem Code nämlich nichts drin.
Wenn noch nicht geschehen: Deinen bisherigen Code mußt du natürlich Löschen oder auskommentieren.
Meinen Code habe ich bei mir getestet und er funktioniert. Bei Doppelklick in eine Zelle in Spalte A wir geprüft ob die angeklickt Zelle eine gelbe Hintergrundfarbe hat. Wenn nein wird die ganze Zeile gelb gefärbt und die Schrift auf fett gesetzt. Wenn ja dann Wied die Färbung entfernt und die Fettschrift raus genommen.
Gruß Werner
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige