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

Zellformatierung dauert ewig

Zellformatierung dauert ewig
R.Przybilla
Hallo Excel-Freunde,
hab hier mal wieder was.
Ich habe viele Zellen, die mehrzeilig sind
Die erste Zeile möchte ich formatieren.
Die zweite Zeile bleibt Standard.
Das dauert per Makro ewig.
Ist das normal?
Das Makro schreibt die Datem aus Spalte2 und 3 in Spalte2 und formatiert das aus Spalte2 fett und 12pt.
Gruß Ralf
Sub test()
With FRLsht
With .Cells.Font
.Name = "Arial"
.Bold = False
.Size = 10
End With
For n = URows To 8 Step -1
.Cells(n, 1) = n - 7
If .Cells(n, 1) Mod 2 = 0 Then .Range(.Cells(n, 1), .Cells(n, 19)).Interior.ColorIndex = _
36
Laenge1 = Len(.Cells(n, 2))
Laenge2 = Len(.Cells(n, 3))
.Cells(n, 2) = .Cells(n, 2) & Chr(10) & Left(Application.WorksheetFunction.Clean(Trim(.  _
Cells(n, 3))), 23)
With .Cells(n, 2).Characters(Start:=1, Length:=Laenge1).Font
.Name = "Arial"
.Bold = True
.Size = 12
End With
next n
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
kleiner Hinweis -> UsedRange
25.05.2012 08:52:13
Matthias
Hallo
Naja zumindest würde ich mal das doppelte Zuweisen der Schriftart vermeiden
mit
With .Cells.Font
.Name = "Arial"
.Bold = False
.Size = 10
End With
weist Du in ALLEN Zellen "Arial" zu.
Mit:
With .Cells(n, 2).Characters(Start:=1, Length:=Laenge1).Font
.Name = "Arial"
.Bold = True
.Size = 12
End With
machst Du das ja für einen Teil nochmal!
Ich würde also nicht alle Zellen ansprechen, sondern nur die im UsedRange
Dann wäre noch die Bildschirmaktualisierung-würde ich am Anfang ausschalten
und die Berechnung auch.
Am Ende schaltest Du alles wieder ein.
Gruß Matthias
Anzeige
AW: kleiner Hinweis -> UsedRange
25.05.2012 10:06:23
R.Przybilla
Hallo Matthias,
Danke für die Hinweise und die Datei.
Screenupdating war bereits auf false
Calculation noch nicht, brachte einen Verringerung von 22 auf 18 sek Verarbeitungsdauer (obwohl keinerlei Formeln in der Arbeitsmappe sind!)
.UsedRange.Font... bringt kaum Vorteile, genauso wie Arial rausnehmen beim Formatieren der Zellen (18 zu 17 sek).
Es Sei ncoh erwähnt, dass noch viele Daten mittels .Find() aus 2 weiteren zu öffnenden Dateien geholt werden und anschließend das Blatt formatiert und eine Seiteneinrichtung stattfindet.
Letzteres dauert ja leider auch immer ewig.
Gruß Ralf
Anzeige
AW: kleiner Hinweis -> UsedRange
25.05.2012 21:50:42
Reinhard
Hallo Ralf,
um zu beschleunigen, zeige doch mal lauffähigen Code, Beispielmappe.
Ggfs. falls nötig da noch die beiden anderen Mappen.
Gruß
Reinhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige