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

Code zu langsam

Code zu langsam
05.06.2018 14:57:25
Idence
Hallo,
ich habe folgenden Code geschrieben, bis er fertig ist, vergehen aber leider einige Sekunden. Hat jemand eine Idee, wie man ihn beschleunigen könnte?
Vielen Dank im voraus.
Sub alteFormatierungEntfernen()
Dim k As Integer
For k = 8 To 500
If Cells(k, 8) = "" Then
Cells(k, 16).ClearFormats 'entfernt Farbe
Cells(k, 17).ClearFormats
Cells(k, 18).ClearFormats
Cells(k, 16).ClearContents 'entfernt Text
Cells(k, 17).ClearContents
Cells(k, 18).ClearContents
End If
Next
End Sub
Gruß
Idence

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code zu langsam
05.06.2018 15:01:38
ChrisL
Hi
Sub alteFormatierungEntfernen()
Dim k As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For k = 8 To 500
If Cells(k, 8) = "" Then
With Range(Cells(k, 16), Cells(k, 18))
.ClearFormats
.ClearContents
End With
End If
Next k
Application.Calculation = xlCalculationAutomatic
End Sub
Falls es Events (z.B. Change-Ereignis) gibt, diese auch noch ausschalten.
cu
Chris
AW: Code zu langsam
05.06.2018 15:12:21
Idence
Hallo Chris,
danke für deine Hilfe, das Programm läuft nun deutlich schneller.
Gruß
Idence
Da gibt's einiges
05.06.2018 15:03:14
lupo1
sortiere nach Spalte 8
.Clear (fasst beide .ClearXXX zusammen) auf den Bereich en bloc ab erste Zeile nach letztem Eintrag H
rücksortieren
Anzeige
AW: Code zu langsam
05.06.2018 15:39:44
Daniel
Hi
Wenn möglich sollte man in Excel vermeiden, jede Zelle einzeln zu bearbeiten, sondern immer versuchen, die Zellen die gleich bearbeitet werden, gemeinsam in einem Schritt zu bearbeiten
da die bearbeiteten Zellen in einer Zeile direkt nebeneinander liegen, kannst du das so zusammenfassen:
Du kannst Formate und Inhalte mit .clear in einem Schritt löschen:
Cell(k, 16).Resize(1, 3).Clear

um es weiter zusammenzufassen, kannst du den Autofilter nutzen.
in gefilterten Tabellen werden nur die sichtbaren Zellen bearbeitet.
dh wenn du die Zeilen, die nicht gelöscht werden sollen, ausblendest, kannst du alle Zellen von Zeile 8 bis 500 in einem Schritt bearbeiten.
Sub test()
Range("H7:H500").AutoFilter field:=1, Criteria1:="="
Range("P8:R500").Clear
Range("H7:H500").AutoFilter
End Sub
Gruß Daniel
Anzeige
AW: Code zu langsam
05.06.2018 20:13:40
Gerd
Moin
Intersect(Cells(8, 8).Resize(493, 1).SpecialCells(xlCellTypeBlanks).EntireRow, Range("P:R")).Clear

Gruß Gerd
AW: Code zu langsam
06.06.2018 10:06:01
Idence
Hallo Gerd,
dein Code läuft superschnell, genau so etwas habe ich gesucht. Dankeschön!
Gruß
Idence
AW: Code zu langsam
06.06.2018 10:33:01
Idence
Hallo nochmal,
wenn ich den obigen Code alleine durchführe, dann läuft der Code sehr schnell, wenn ich es jedoch über eine andere Sub (mit Call) aufrufe, dann wird diese andere Sub stark verlangsamt. Ist dies ein bekanntes Phänomen? Gibt es Wege, dies zu umgehen?
Ich hoffe, ich habe mich verständlich ausgedrückt.
Gruß
Idence
Anzeige
AW: Code zu langsam
06.06.2018 13:44:22
Daniel
Hi
schwer zu sagen.
kannst du die Datei mal hochladen, damit man das Problem nachvollziehen kann?
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige