wer kennt eine Lösung für folgende Aufgabe: wie können per Makro in der Beispieldatei als Anlage innerhalb der Spalten B, D und F die leeren Zellen in der jeweiligen Spalte jeweils mit den darunterliegenden Einträgen gefüllt werden (sozusagen innerhalb der Spalten von unten nach oben)!?
Markiere die Spalten B, D und F. F5 -> Inhalte ... -> Leerzellen -> OK Folgende Formel eingeben und mit STRG-ENTER abschließen: = gefolgt von Pfeil-nach-unten. Markiere die Spalte B. STRG-C und dann Werte einfügen. Markiere die Spalte D. STRG-C und dann Werte einfügen. Markiere die Spalte F. STRG-C und dann Werte einfügen.
Wir sehen uns! ... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
04.07.2017, 19:45 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2017, 19:45 von sunny01.)
Hallo,
habe versucht es aufzuzeichnen, hat aber leider nicht funktioniert, da die Werte nicht ausgefüllt werden!? Wie könnte ein Makro für das beiliegende Beispiel aussehen, wer kann mir da weiterhelfen?
04.07.2017, 20:32 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2017, 20:32 von lupo1.)
Schnell und schmutzig (vorher Sicherheitskopie Deiner Spalten!):
Sub MachsMirVonUnten(): OhJaa "B": OhJaa "D": OhJaa "F": End Sub Sub OhJaa(Spalte): v = Range(Spalte & "1:" & Spalte & "9999") For i = 9999 To 1 Step -1: If v(i, 1) = "" Then v(i, 1) = t Else t = v(i, 1) Next: Range(Spalte & "1:" & Spalte & "9999") = v: End Sub
Sub mach_es_ordentlich_und_auch_nicht_zu_langsam()
Dim lngZ As Long Dim i As Long, j As Long Dim feld
Application.ScreenUpdating = False For j = 2 To 6 Step 2 lngZ = Cells(Rows.Count, j).End(xlUp).Row feld = Range(Cells(1, j), Cells(lngZ, j)) For i = lngZ - 1 To 1 Step -1 If feld(i, 1) = "" Then feld(i, 1) = feld(i + 1, 1) End If Next i Range(Cells(1, j), Cells(lngZ, j)) = feld Next j