PDA

Vollständige Version anzeigen : VBA: vorhandenes Makro von unten nach oben laufen lassen


bikalexander
24.08.2017, 09:22
Hallo zusammen,

ich habe ein Makro im Internet gefunden, was auch sehr gut funkt.

Was mir fehlt ist, das man in bestimmten Spalten (zB. D2:D50000) das Makro von unten nach oben laufen soll.

Hat eventuell jemand ein Beispiel wie wie es aussehen soll?

Vielen Dank im Voraus!

Makro:

Sub Leerzellen()

Dim Bereich As Range, Zelle As Range

Set Bereich = Range("B2:B50000")

For Each Zelle In Bereich.SpecialCells(xlCellTypeBlanks)

Zelle = Zelle.Offset(-1, 0)
Next Zelle

End Sub

Backowe
24.08.2017, 11:21
Hi,

so geht es:

Sub Leerzellen()
Dim IntI As Integer
For IntI = 5000 To 2 Step -1
'If Cells(IntI, "D") .... then

'End If
Next
End Sub

Uwi63
24.08.2017, 11:44
Hallo,
ich würde zuerst alle Leerzellen-Zeilen ermitteln, diese in ein Array lesen und dieses dann rückwärts abarbeiten.
z.Bsp. so:
Sub LeerzellenArray()
'Array-Variante
Dim rng As Range, c As Range
Dim arr() As Variant, i As Long

On Error GoTo errhandler

Set rng = Intersect(Columns("B:B"), Cells.SpecialCells(xlCellTypeBlanks))
ReDim arr(rng.Count - 1)
i = 0
'erstmal die Zeilennummern in Array einlesen
For Each c In rng
arr(i) = c.Row
i = i + 1
Next c

'Array rückwärts lesen
For i = UBound(arr) To LBound(arr) Step -1

'MsgBox "Leerzelle in " & Cells(arr(i), "B").Address
Next i

Set c = Nothing
Set rng = Nothing

Exit Sub
errhandler:
MsgBox "Fehlernr:" & err.Number & " " & err.Description

End Sub

bikalexander
24.08.2017, 11:56
Vielen Dank an Uwi63 u. Backowe.

Beide Varianten konnte ich umsetzen.