Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Geschwindigkeit optimieren

Forumthread: 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

Anzeige

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



Anzeige
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

Anzeige
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

;

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