Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
244to248
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
244to248
244to248
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Geschwindigkeit optimieren

Geschwindigkeit optimieren
17.04.2003 15:29:16
Peter
Hallo.

Hat jemand vielleicht noch jemand eine Idee, wie man den Ablauf hier optimieren könnte?


Sub Farbenzählen()

Dim Zelle As Object
Dim gelb%, grün%, blau%


For z = 2 To 21

gelb = 0: grün = 0: blau = 0

For Each Zelle In Range(Cells(3, z), Cells(99, z))
Select Case Zelle.Interior.ColorIndex
Case 6: gelb = gelb + 1
Case 50: grün = grün + 1
Case 5: blau = blau + 1
End Select

Cells(100, z).Value = grün
Cells(102, z).Value = gelb
Cells(104, z).Value = blau

Next
Next


End Sub

Grüße
Peter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Geschwindigkeit optimieren
17.04.2003 16:03:05
moe

das läuft bei mir ziemlich schnell ab
dein code dauert 2 sekunden bei mir meiner weniger als eine
Versuch es mal
gruss

Moe

Sub Farbenzählen()

Dim Zelle As Object
Dim gelb%, grün%, blau%


z = 3


Do Until z = 21
gelb = 0: grün = 0: blau = 0
For Each Zelle In Range(Cells(3, z), Cells(99, z))
Select Case Zelle.Interior.ColorIndex
Case 6: gelb = gelb + 1
Case 50: grün = grün + 1
Case 5: blau = blau + 1
End Select

Cells(100, z).Value = grün
Cells(102, z).Value = gelb
Cells(104, z).Value = blau

Next
z = z + 1
Loop


End Sub

Anzeige
Re: Geschwindigkeit optimieren
17.04.2003 16:13:50
gordon

Hallo Peter,

grundsätzlich alle Variablen dimensionieren (z fehlte, Zelle as Range, nicht as Object). Cells....value hinter die erste Schleife - generelle Frage: Ist es gewünscht, die Farben pro Spalte oder nur im gesamten Bereich zu zählen (da die Zähler nie auf Null zurückgesetzt werden). Wenn gesamter Bereich, dann kann auch die gesamte z...schleife entfallen und Du setzt den Range gleich auf Cells(3,2),Cells(99,21).

Berichte mal, ob es signifikant schneller geworden ist.

Gruß´
gordon



hier noch eine Möglichkeit .....
17.04.2003 16:22:10
udo

hi peter,

das hat bei mir bei einigen Makros geholfen sie zu beschleunigen.

Sub Bla bla ...
Application.ScreenUpdating = False 'Bildschirmaktualisierung aus

dann deine Anweisungen aller Art
und zum Schluss vor End Sub wieder


Application.ScreenUpdating = True 'Bildschirmaktualisierung ein
End Sub

Gruss udo



Anzeige
manuelle Berechnung
17.04.2003 16:50:13
GerdZ

Hallo Peter,

als großer Bremsklotz wirkt hier auch die automatische Neuberechnung nach jeder Zelländerung.
Schalte diese am Anfang des Makros mit
Application.Calculation = xlCalculationManual
auf manuelle Berechnung um und am Ende des Makros wieder auf Automatik zuück:
Application.Calculation = xlCalculationAutomatic

Gruß
Gerd

Re: Geschwindigkeit optimieren
17.04.2003 18:51:37
Peter

Hi.

Habe alles mal eingebaut. Geht jetzt recht schnell.
Die sache mit
Application.ScreenUpdating = False 'Bildschirmaktualisierung aus

hat glaube ich am meisten gebracht. Aber alles zusammen ist perfekt. *G

Grüße
Peter

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige