Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen mit Werten aus darüberliegender Zelle fülle

Betrifft: Zellen mit Werten aus darüberliegender Zelle fülle von: Andreas Palt
Geschrieben am: 11.08.2008 08:59:25

Guten Morgen!

Ich hätte folgendes Problem: Ich erhalte automatisiert Exceltabellen, bei denen nicht alle Zellen einer Zeile gefüllt werden, wenn dort der Inhalt einer darüberliegenden Zeile stehen sollte. Zur Weiterverarbeitung muss ich aber diese Zellen mit den dazugehörigen Werten füllen. Eigentlich habe ich hier mit keinem Problem gerechnet, nur leider funktioniert meine copy-paste-Schleife nicht.

Ich gehe wie folgt vor: In einer Spalte werden die Zellen von oben nach unten druchgegangen und wenn die Zelle leer ist, soll Excel den Wert der darüberliegenden Zelle nehmen. So sollen alle Spalten druchgegangen werden.

Spalten- und Zeilenzahl soll Excel dabei automatisch erkennen, weil diese immer variieren.

Mit folgendem Code habe ich es bisher versucht, nur beim eigentlich entscheidenden Teil, wenn die Werte kopiert und eingefügt werden sollen, gibt es ein Problem.


Sub Zellenauffuellen()

Dim Wert1, Column As Integer    'Spalten
Dim Wert2, Row As Long          'Zeilen
Dim ActiveWorkbook, Workbook As Variant

Wert1 = ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count - 1
Wert2 = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1

Column = 1

Do Until Column = Wert1

    Row = 1
    Do Until Row = Wert2
     
        If ActiveCell = "" Then
            ActiveSheet.Cells(Row - 1, Column).Select
                Application.CutCopyMode = False
                Selection.Copy
            ActiveSheet.Cells(Row, Column).Select
                ActiveSheet.Paste
            
        End If
    Row = Row + 1
    Loop

Column = Column + 1

Loop

End Sub



Wäre super, wenn mir jemand weiterhelfen könnte.

Vielen Dank!

  

Betrifft: AW: Zellen mit Werten aus darüberliegender Zelle fülle von: David
Geschrieben am: 11.08.2008 09:21:22

Ich hatte kürzlich ein ähnliches Problem und habe hier im Forum diese Lösung bekommen:

With Range("A2:E" & ActiveSheet.Cells(Rows.Count, 10).End(xlUp).Row)
   .SpecialCells(xlCellTypeBlanks).FormulaLocal = "=A1"
   .Formula = .Value
End With


Das sollte leicht auf deine Verhältnisse anpassbar sein, du musst nur die Range entsprechend definieren.

Gruß

David


  

Betrifft: Möglichkeit von: backowe
Geschrieben am: 11.08.2008 09:33:46

Hi,

VBA-Code:
Sub Zellenauffuellen()
Dim Zelle As Range
Dim Zeile As Long
Dim Spalte As Integer
Zeile = Cells(Cells.Find(What:="*", After:=[A1], _
  SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row, "A").Row
Spalte = Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column
For Each Zelle In Range("A1:" & Cells(Zeile, Spalte).Address)
  If Zelle = "" Then Zelle = Zelle.Offset(-1, 0)
Next
End Sub
Code eingefügt mit Syntaxhighlighter 4.15


Gruß Jürgen


  

Betrifft: AW: Möglichkeit von: Andreas Palt
Geschrieben am: 11.08.2008 09:39:38

Super, vielen Dank!!


 

Beiträge aus den Excel-Beispielen zum Thema "Zellen mit Werten aus darüberliegender Zelle fülle"