Werte automatisch nach unten füllen

Bild

Betrifft: Werte automatisch nach unten füllen
von: Erlinghagen
Geschrieben am: 18.05.2015 11:07:07

Hallo Forum,
in der Anlage ist eine Tabelle, die im Original meine Daten zeigt und im Ergebnis meine Wunschdarstellung. Das Ergebnis würde ich gerne per Fromel, VBA, wie auch immer hinkriegen.
Kennt jemand eine Lösung?
Der Datensatz enthält bis zu 28.000 Zeilen und ist manuell kaum zu bearbeiten.
Warum mache ich das? Damit ich am Ende über Pivot je Name eine Summe der Stunden erhalten.
Anlage:
https://www.herber.de/bbs/user/97696.xls
Vielen Dank im Voraus!
Benjamin

Bild

Betrifft: AW: Werte automatisch nach unten füllen
von: Gerd L
Geschrieben am: 18.05.2015 11:32:22
Halo Benjamin!

Sub Fill_It()
Dim Rng As Range, L As Long
On Error Resume Next
Set Rng = Columns(1).SpecialCells(xlCellTypeBlanks)
On Error GoTo ENDE
For L = 1 To Rng.Areas.Count
    Rng.Areas(L) = Rng.Areas(L)(0, 1)
Next
ENDE:
If Err.Number <> 0 Then Err.Clear
End Sub

Gruß Gerd

Bild

Betrifft: AW: Werte automatisch nach unten füllen
von: Erlinghagen
Geschrieben am: 18.05.2015 12:15:53
Funktioniert bestens!!! Vielen Dank!

Bild

Betrifft: AW: Werte automatisch nach unten füllen mit Formel
von: Daniel
Geschrieben am: 18.05.2015 13:09:33
Hi
ohne VBA gehts auch einfach:
1. Spalte A markieren
2. markierung mit Start - Bearbeiten - Suchen und Auwählen - Ihalte - Leerzellen auf die Leerzellen reduzieren
3. in die aktive Zelle (ist die erste leere bei dir A4) die Formel eingeben: =A3 (sinngemäß: "Wert aus Zelle obendrüber") und Eingabe mit STRG+ENTER abschließen.
Die Formel wird dann in alle markierten Zellen übernommen.
4. falls Erwünscht, Spalte A markieren und an gleicher Stelle als Wert einfügen.
so gehts auch mit VBA:

With Columns(1)
    .SpecialCells(xlcelltypeblanks).FormulaR1C1 = "=R[-1]C"
    .Formula = .Value
End with

bei sehr grossen Datenmengen kann auch diese Verfahren an seine Grenzen kommen, dann einfach in einer Hilfsspalte (z.B. Spalte C) folgende Formel eintragen und bis ans Datenende kopieren (Formel ab Zeile2):
=Wenn(A2="";C1;A2)
und dann auch wieder kopieren und in Spalte A als Wert eintragen.
das geht auch als Makro und dürfte bei grossen Datenmengen das beste sein, vorallem wenn es viele einzelne Namen sind.
dim sp as long
dim ze as long
sp = cells.SpecialCells(xlcelltypelastcell).Column + 1
ze = cells.SpecialCells(xlcelltypelastcell).row
With Range(Cells(2, sp), cells(ze, sp))
.FormulaR1c1 = "=IF(RC1="""",R[-1]C,RC1)"
.copy
Cells(2, 1).PasteSpecial xlpastevalues
.ClearContents
End with

Gruß Daniel

Bild

Betrifft: AW: Werte automatisch nach unten füllen mit Formel
von: Erlinghagen
Geschrieben am: 18.05.2015 13:28:22
Der erste Hinweis von Dir Daniel gefällt mir richtig gut!
Besten Dank Euch beiden!
VG

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Werte automatisch nach unten füllen"