Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

makro arbeitet lange ab

Forumthread: makro arbeitet lange ab

makro arbeitet lange ab
17.08.2021 18:43:22
Fred
Hallo Excel Profis,
das "abarbeiten" des Makros:

Dim lngZeile As Long
Dim rngZelle As Range
Application.ScreenUpdating = False
lngZeile = Range("A" & Rows.Count).End(xlUp).Row
Range("z2:BA" & lngZeile).Select
For Each rngZelle In Selection
rngZelle.Value = Replace(rngZelle.Value, "+", ",")
If rngZelle.Value  "" Then rngZelle.Value = rngZelle.Value * 1
Next rngZelle
dauert bei ca. 3000 Zeilen sehr lange,- nach Minuten breche ich ab.
Meine Frage:
Kann das Makro optimiert werden?
Gruss
Fred
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: makro arbeitet lange ab
17.08.2021 19:10:41
Marc
Hallo Fred,
.Selection ist in 99% der Fälle unnötig.
Versuch mal folgendes:

Dim lngZeile As Long
Dim rngZelle As Range
Application.ScreenUpdating = False
lngZeile = Range("A" & Rows.Count).End(xlUp).Row
For Each rngZelle In Range("z2:BA" & lngZeile)
rngZelle.Value = rngZelle.Value & "+" & ","
If rngZelle.Value  "" Then rngZelle.Value = rngZelle.Value
Next rngZelle
Das *1 verstehe ich auch nicht ganz, deshalb habe ich das mal entfernt.
Gruß Marc
Anzeige
AW: makro arbeitet lange ab
17.08.2021 19:22:12
Nepumuk
Hallo Fred,
teste mal:

Public Sub Test()
With Range(Cells(2, 26), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 53))
Call .Replace(What:="+", Replacement:=".", LookAt:=xlPart)
With Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
.Value = 1
Call .Copy
End With
Call .PasteSpecial(Operation:=xlPasteSpecialOperationMultiply)
End With
Cells(Rows.Count, 1).End(xlUp).Value = Empty
End Sub
Gruß
Nepumuk
Anzeige
AW: makro arbeitet lange ab
17.08.2021 19:39:40
Fred
Hallo Nepumuk,
nun wird in ca. 2-3 Sekunden abgearbeitet,- ist schon mal Super!
Allerdings werden die "Leeren Zellen" mit einer Null belegt. Kannst du das Makro noch dahin ändern, dass anstatt 0 die Zelle leer ("")bleibt? Die Zellen im genannten Bereich werden noch von anderen Formeln genutzt.
Ich kann allerdings auch mit Replace danach die Null austauschen.
Gruss
Fred
Anzeige
AW: makro arbeitet lange ab
17.08.2021 19:45:29
Nepumuk
Hallo Fred,
null Problemo:

Public Sub Test()
With Range(Cells(2, 26), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 53))
Call .Replace(What:="+", Replacement:=".", LookAt:=xlPart)
With Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
.Value = 1
Call .Copy
End With
Call .PasteSpecial(Operation:=xlPasteSpecialOperationMultiply)
Call .Replace(What:=0, Replacement:=Empty, LookAt:=xlWhole)
End With
Cells(Rows.Count, 1).End(xlUp).Value = Empty
End Sub
Gruß
Nepumuk
Anzeige
Nepumuk, läuft perfekt
17.08.2021 19:54:50
Fred
Hallo Nepumuk,
läuft Perfekt !!
In deiner ersten Version ( habe ich erst später gesehen) wurden anscheinend ebenfalls die "Null" entfernt. Aus "90+5" wurde "9,5" statt "90,5".
Nun stimmt aber alles.
Danke für deine Mühe!
Gruss
Fred
;

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