Spalte von unten nach oben befüllen
#1
Hallo,

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)!?


Angehängte Dateien
.xlsx   Spalten_fuellen.xlsx (Größe: 8,58 KB / Downloads: 8)
Top
#2
Hallo

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.

Top
#3
Hallo,

danke Dir für die Info, ich würde das gerne mit einem Makro automatisieren. Ev. gibt es zur Excel eigenen Lösung noch eine Makro Lösung!?
Top
#4
Hi

Zeichne die Aktion mit dem Macrorecorder auf und bearbeite den Code.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#5
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?
Top
#6
Hi

Meine Aufzeichnung sieht so aus:
Code:
Sub Makro1()
    Range("B:B,D:D,F:F").Select
    Range("F1").Activate
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.FormulaR1C1 = "=R[1]C"
    Columns("B:B").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("D:D").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("F:F").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#7
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
Top
#8
Hallo,

vielen Dank für Eure Makros! Habe das Makro von shift-del bereits getestet und übernommen (ist schnell und zuverlässig)!
Top
#9
Hallo,

trotzdem noch ein Vorschlag:

Code:
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
 
End Sub
Gruß Atilla
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste