Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?

If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:15:45
Marco1981
Ich habe von meinem Vorgänger ein ziemlich umfangreiches Excel-Projekt "geerbt" und habe jetzt eine Frage:
es wird ziemlich oft per VBA die Zeilenhöhe in einem Sheet verändert und dabei ist jedesmal eine If-Abfrage im Code, die abfragt, ob die Zeile schon die gewünschte Höhe hat:

If Worksheets("Ausgabe").Rows(Zielzeile + 2).RowHeight > 19 Then

Worksheets("Ausgabe").Rows(Zielzeile + 2).RowHeight = 19
End If


ist das wirklich sinnvoll? Mal angenommen, das kommt wirklich oft im Code vor und es werden viele Zeilenhöhen angepasst, was wäre eurer Meinung nach schneller: mit oder ohne If-Abfrage? Oder macht es so oder so nicht viel Unterschied?
Und falls es relevant ist: die Zeilen werden meistens nicht die gewünschte Zeilenhöhe haben, also finde ich persönlich die If-Abfrage hier überflüssig.
Anzeige
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:19:29
Onur
Nur DAS ist das Selbe:
Worksheets("Ausgabe").Rows(Zielzeile + 2).RowHeight = 19
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:23:44
Peter Trawinski
Alles, was man im Blatt ändert kostet viel Zeit! Die If-Abfrage praktisch nichts. Teste mal in einer Schleife für eine Zelle - z. B. 10.000e Mal.
Das Schlimmste sind übrigens Befehle "Autofit" für Spaltenbreite! Ist seit Office 2013 unendlich langsamer geworden wenn, wie bei mir, 100.000 Zeilen belegt sind...
Anzeige
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:26:47
Marco1981
ok, dann sollte ich die If-Abfragen drin lassen, weil er dann zumindest bei den wenigen Fällen, bei denen die Zeilenhöhe schon passt und nicht mehr geändert werden muss, etwas Zeit spart?
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:29:03
Onur
Glaubst du, die IF-Abfrage selbst kostet KEINE Zeit ?
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:38:44
Marco1981
Also ich hab das jetzt einfach, wie Peter Trawinski vorgeschlagen hat, mit einer Schleife mit 1000 Durchläufen getestet:
Mit If-Abrage:

Sub WieschnellMit()

Dim Anzahl As Long
For Anzahl = 1 To 1000
If Worksheets("Speedtest").Rows(3).RowHeight > 59 Then
Worksheets("Speedtest").Rows(3).RowHeight = 59
End If
Next Anzahl
Worksheets("Speedtest").Cells(1, 1).Value = "Erfolg"
End Sub


Und ohne If-Abfrage:

Sub WieschnellOhne()

Dim Anzahl As Long
For Anzahl = 1 To 1000
Worksheets("Speedtest").Rows(3).RowHeight = 59
Next Anzahl
Worksheets("Speedtest").Cells(1, 1).Value = "Erfolg"
End Sub


und tatsächlich, der Unterschied ist sehr deutlich! Mit If-Abfrage läuft der Code quasi sofort durch, ohne If-Abfrage braucht er bei mir 12 Sekunden!

Anzeige
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:44:57
Onur
Was hast du für einen Rechner? C64? TRS-80 ?
Bei mir kommt das heraus: 0,0078125 sec.
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:47:00
Onur
Sorry, der falsche Test.
Der richtige Wert: 0,9179688 sec.
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:48:55
Onur
Und wenn man Screen-Update ausschaltet, das: 0,2539063 sec
Anzeige
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:58:41
Marco1981
stimmt, mit Application.ScreenUpdating = False ist er deutlich schneller, das habe ich aber eh standardmäßig bei meinem großen Script drin.
Hab jetzt die Schleife auf 10.000 Durchläufe erhöht, es ist aber trotzdem ein deutlicher Unterschied in der Geschwindigkeit erkennbar ohne If-Abfrage.
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 10:06:56
Onur
Ganz ohne Schleife ist am schnellsten - nicht messbar.
Anzeige
AW: If-Abfrage vor jeder Änderung der Zeilenhöhe sinnvoll?
28.10.2024 09:57:12
Onur
Und SO ist die Zeit gar nicht mehr messbar (0,000):
Worksheets("Speedtest").Rows("1:1000").RowHeight = 59
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige