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

Tabellenblatt formatieren

Tabellenblatt formatieren
30.01.2015 12:51:46
ludmila

Hallo,
in beiliegender Datei so die Tabelle je nach Eingabe formatiert werden.
Wird in Spalte "E" ein Wert eingetragen, dann wird entsprechend der Position
fett oder nicht fett formatiert.
Das klappt ganz gut.
Jedoch habe ich festgestellt, dass wenn mehr als 1000 Zeilen in der Tabelle stehen
dies doch 1-2 sekunden dauert.
Wie kann ich dies ändern?
Danke!
Gruß
Ludmila
https://www.herber.de/bbs/user/95421.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt formatieren
30.01.2015 13:00:44
Klaus M.vdT.
Hi,
du gehst ja bei JEDEM Change alle 1000 Zeilen vier mal mit der Schleife durch!
Ändere das Ereigniss von "Worksheet_Calculate" auf "Worksheet_Change" und prüfe bei Änderung einer Zelle nicht ALLE Zeilen nach, sonden nur die sich auf die aktuelle (target.row) beziehenden.
Vielleicht ist auch eine Lösung mit bedingter Formatierung möglich? Dafür müsste ich aber deine Regeln besser verstehen.
Grüße,
Klaus M.vdT.

AW: Tabellenblatt formatieren
31.01.2015 00:15:28
ludmila
Hallo Zusammen,
erstmals Danke für Eure Hilfe.
Das Beispiel von Rudi funktioniert gut jedoch bei mehr als 5000 Zeilen wird es wieder langsam.
Zum Verständnis der Ausführung:
z.B.
1 - In Spalte Zeile "A13" wird die Pos. angegegen und in "B13" der Text.
2 - In Spalte Zeile "B18", "E18" und "F18" wird das Ergebnis geliefert.
Wird nun in "Spalte "E14" ein Wert eingetragen soll 1 + 2 Fett dargestellt werden.
Ist in Spalte "E" kein Wert dann soll 1 + 2 nicht fett sein.
Zur besseren Übersicht die Tabelle gegliedert.
Es dient der Übersicht, damit ich sehe welche Positionen Werte enthalten.
Ferner möchte ich noch per Makro erreichen, dass sich die "Fetten" Zeile öffnen.
Danke für Eure Hilfe!
Gruß
Ludmila
https://www.herber.de/bbs/user/95438.xlsm

Anzeige
AW: Tabellenblatt formatieren
30.01.2015 13:04:33
yummi
Hallo Ludmilla,
zusätzlich zu dem von Klaus vorgeschlagenen noch:
Da wo du .ScreenUpdating = False setzt auch
noch .Calculation = xlCalculationManual
und wo du .ScreenUpdating = True setzt auch
noch .Calculation = xlCalculationAutomatic
Gruß
yummi

AW: Tabellenblatt formatieren
30.01.2015 13:13:06
Rudi Maintaire
Hallo,
1. Wenn du zu Beginn in A,B,E,G fett raus nimmst, sparst du die 2.Schleife For n1=....
2. Erst alle Zellen sammeln und dann auf einmal fett formatieren.
Private Sub Worksheet_Calculate()
Dim ii As Integer
Dim n As Integer
Dim varWert As Variant
Dim wks As Worksheet
Dim rBold As Range
Set wks = Sheets("Tabelle2")
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
With wks
.Range(.Cells(13, 1), .Cells(Rows.Count, 7).End(xlUp)).Font.Bold = False
For n = 12 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(n, 1).Value <> "" And .Cells(n, 8) > 0# Then
If rBold Is Nothing Then
Set rBold = .Cells(n, 1).Resize(, 2)
Else
Set rBold = Union(rBold, .Cells(n, 1).Resize(, 2))
End If
varWert = .Cells(n, 1).Value
For ii = n To .Cells(.Rows.Count, 7).End(xlUp).Row
If .Cells(ii, 7).Value = varWert Then
Set rBold = Union(rBold, .Cells(ii, 2), .Cells(ii, 5), .Cells(ii, 7))
End If
Next ii
End If
Next n
End With
If Not rBold Is Nothing Then rBold.Font.Bold = True
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Gruß
Rudi

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige