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

Makro zum Ersetzen dauert ewig

Makro zum Ersetzen dauert ewig
11.01.2019 14:07:04
Jens
Hallo zusammen,
in einem Arbeitsblatt habe ich 230.000 Zeilen mit Einträgen. In Spalte 4 möchte ich alle leeren Zellen mit "unbekannt" ersetzen. Das Makro dauert ewig. Gibt es elegantere und vor allem schnellere Lösungen dafür?
Auszug:
'Formelberechnung unterbrechen
Application.Calculation = xlCalculationManual
'umbenennen in unbekannt
Dim i
For i = Cells(Rows.Count, 4).End(xlUp).Row To 11 Step -1
On Error Resume Next
If Cells(i, 4).Value = "" Then
Cells(i, 4).Value = "unbekannt"
End If
Next
'Formelberechnung aktivieren und Neuberechnung
Application.Calculation = xlCalculationAutomatic
Application.Calculate
Besten Dank für Eure Hilfe

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

Betreff
Datum
Anwender
Anzeige
AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:14:51
Malte
Hallo Jens,
der einfachste Weg um deinen Code zu beschleunigen ist folgender:
'Formelberechnung unterbrechen
Application.ScreenUpdating = False
und
Application.ScreenUpdating = True
noch jeweils zu deiner Zeile:
Application.Calculation = xlCalculationManual
und
Application.Calculation = xlCalculationAutomatic
hinzufügen.
AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:24:23
Jens
Hallo Malte,
Application.ScreenUpdating ist am Anfang und Ende des Makro eingebaut. Ebenfalls die Unterbrechung der Formelberechnung und deren Aktivierung. Siehe Auszug
BG Jens
AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:32:43
onur

Dim z,lz
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
lz=Cells(Rows.Count, 4).End(xlUp).Row
For z = 1 to lz
If Cells(z, 4) = "" Then Cells(z, 4) = "unbekannt"
Next z
'Formelberechnung aktivieren und Neuberechnung
Application.ScreenUpdating = true
Application.Calculation = xlCalculationAutomatic

Application.Calculate
Anzeige
AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:36:35
onur
Sorry, muss natürlich lauten:
For z = 11 to lz

AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:39:34
Daniel
HI
probier mal
Range("D11:D" & cells(rows.count, 4).end(xlup).Row).Replace "", "unbekannt", xlwhole

oder
With Cells.SpecialCells(xlCellTypeLastCell)
With Range(.Offset(11 - .Row, 1), .Offset(0, 1))
.FormulaR1C1 = "=IF(RC4="""",""unbekannt"",RC4)"
.Copy
.Offset(0, 4 - .Column).PasteSpecial xlPasteValues
.ClearContents
End With
End With
wenn man schnelle und elegante Lösungen in VBA sucht, dann wird man häufig fündig, wenn man sich überlegt, wie man diese Aufgabe ohne VBA schnell und elegant lösen könnte und dann diesen Weg in VBA nachprogrammiert.
Gruß Daniel
Anzeige
ob man dafür PQ braucht?
11.01.2019 18:23:35
Daniel
das kann eigentlich auch das normale ERSETZEN von Excel
Gruß Daniel
AW: ob man dafür PQ braucht?
14.01.2019 07:58:25
Jens
Moin zusammen,
ich habe jetzt mit der Lösung von Daniel
Range("D11:D" & Cells(Rows.Count, 4).End(xlUp).Row).Replace "", "unbekannt", xlWhole
eine sehr gute Performance.
Besten Dank für die schnelle Hilfe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige