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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige