Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
888to892
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
888to892
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Quellcode beschleunigen

Quellcode beschleunigen
27.07.2007 14:45:00
Mathias
Hallo,
hat jemand eine Idee, wie mal folgenden Quellcode deutlich beschleunigen kann, ohne dass Funktionen verloren gehen?
For Each cell In Selection
If (Not cell.Locked) Then
With cell
.FormulaR1C1 = "X"
.Interior.ColorIndex = 4
.Font.ColorIndex = 1
End With
End If
Next cell
Der Quellcode dient dazu, dass eine Eingabe (hier als Beispiel "X") in einer Zelle in alle markierten Zellen eingetragen wird, sofern die Zelle nicht geschützt ist.
Viele Grüße
Mathias

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Quellcode beschleunigen
27.07.2007 14:58:00
Rudi
Hallo,
Application.screenupdating=False
davor
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Quellcode beschleunigen
27.07.2007 15:03:00
Mathias
Hallo Rudi,
das hab ich schon probiert. Bringt leider keinen spürbaren Geschwindigkeitsgewinn.
Ich vermute mal, dass die einzelnen Zuriffe auf jede "Cell" das Ganze so ausbremmst, denn
Selection.FormulaR1C1 = "X"
Selection.Interior.ColorIndex = 4
Selection.Font.ColorIndex = 1
ist superschnell. Aber leider werden geschützte Zellen (oder ausgeblendete Spalten) da nicht übersprungen.
Viele Grüße
Mathias

Anzeige
AW: Quellcode beschleunigen
27.07.2007 15:08:26
ransi
HAllo Mathias
Da gibts noch mehr Bremsen die man lösen kann:
Teste mal:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Dim AppCalc
Dim AppScreen
Dim AppEvents
Dim AppCursor

Public Sub test()
Dim Zelle
More_speed
For Each Zelle In Selection
    If Not Zelle.Locked Then
        With Zelle
            .Value = "X"
            .Interior.ColorIndex = 4
            .Font.ColorIndex = 1
        End With
    End If
Next
Meine_Einstellungen
End Sub

Public Sub More_speed()
With Application
    AppCalc = .Calculation
    AppScreen = .ScreenUpdating
    AppEvents = .EnableEvents
    AppCursor = .Cursor
    .Calculation = xlCalculationManual
    .ScreenUpdating = False
    .EnableEvents = False
    .Cursor = xlDefault
End With
End Sub

Public Sub Meine_Einstellungen()
With Application
    .Calculation = AppCalc
    .ScreenUpdating = AppScreen
    .EnableEvents = AppEvents
    .Cursor = AppCursor
End With
End Sub

ransi

Anzeige
AW: Quellcode beschleunigen
27.07.2007 15:41:32
Mathias
Hallo Ransi,
vielen Dank für den Tipp. Hab jetzt leider keine Zeit mehr den Code ausgiebig zu testen (das Wochenende naht ;-) Werde es später testen und mich dann nochmal melden.
Was mir nur spontan auffällt: Wird Application.ScreenUpdating beim Verlassen einer Sub nicht automatisch wieder auf TRUE gesetzt?
Viele Grüße
Mathias

AW: Quellcode beschleunigen
27.07.2007 15:13:51
Rudi
Hallo,
so:

Sub tt()
Dim rng As Range, rngC As Range
Application.ScreenUpdating = False
For Each rngC In Selection.Cells
If rngC.Locked = False Then
If rng Is Nothing Then
Set rng = rngC
Else
Set rng = Union(rng, rngC)
End If
End If
Next
With rng
.Value = "x"
.Interior.ColorIndex = 4
.Font.ColorIndex = 1
End With
Application.ScreenUpdating = True
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
ERLEDIGT AW: Quellcode beschleunigen
27.07.2007 15:38:04
Mathias
Hallo Rudi,
vielen vielen Dank, das funktioniert schonmal seeeehr gut! :-)
Viele Grüße
Mathias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige