Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Automatisches Auffüllen Zellen | Herbers Excel-Forum


Betrifft: Automatisches Auffüllen Zellen von: Robert
Geschrieben am: 13.11.2009 12:22:00

Liebe Forumsleser,

Ich kämpfe gerade mit einem Excel File und würde gerne das Problem mit einem Makro Lösung:

Ich habe folgenden File:

A B

Firma MS 1 1:03:31
Firma MS 2
Firma MS 3
Firma MS 4
Firma MS 5
Allgemein 1
Firma SS 1 0:02:01
Allgemein 2
Firma SS 2 1:45:57
Allgemein 3
Firma SS 4 0:01:31
Algemein 1
usw.

Jetzt hätte ich gerne, dass in der Reihe B, die jeweilige Zeitdauer auf die unteren leeren Zellen übernommen wird, bis eine neue Zeitdauer bereits angegeben ist. Weiss hier einer Rat wie man das schnell hinkriegen kann, das File ist über 1000 Zeilen lang.

Vielen Vielen Dank im Voraus für die Unterstützung!!

Robert

  

Betrifft: AW: Automatisches Auffüllen Zellen von: Petra
Geschrieben am: 13.11.2009 12:34:39

Hi Robert

Sub Leerzell_auffüllen()
    Range("B1:B20").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
End Sub
Range mußt Du anpassen.
Hilfts?

Grüße Petra


  

Betrifft: AW: Automatisches Auffüllen Zellen von: Robert
Geschrieben am: 14.11.2009 00:09:17

VIelen Dank Petra! Das hat super geklappt!


  

Betrifft: AW: Automatisches Auffüllen Zellen von: David
Geschrieben am: 13.11.2009 13:02:31

Hallo Robert,

hier eine Variante, die ich selbst verwendet, mit variabler Eingabe des betreffendes Bereichs:

Sub fill_lines()

Dim first_line As Integer
Dim last_line As Integer
Dim spalte_AN As String
Dim spalte_BN As String
Dim spalte_N As Byte
Dim spalte_O As Byte

first_line = CInt(0 & InputBox("erste Zeile?", , 2))
last_line = CInt(0 & InputBox("letzte Zeile?", , ActiveSheet.UsedRange.Rows.Count))
spalte_AN = InputBox("Spalte von?", , "a")
spalte_BN = InputBox("Spalte bis?", , "a")

If first_line <= 1 Then first_line = 2
If last_line = 0 Then last_line = Range(spalte_AN & "65536").End(xlUp).Row
If spalte_AN = "" Then spalte_AN = "a"
If spalte_BN = "" Then spalte_BN = spalte_AN

spalte_N = Asc(spalte_AN)

If spalte_N < 91 And spalte_N > 64 Then
    spalte_N = spalte_N - 64
    ElseIf spalte_N < 123 And spalte_N > 96 Then
    spalte_N = spalte_N - 96
    Else:
    MsgBox ("falsche Eingabe, nur Buchstaben von A-Z (a-z) erlaubt")
    Exit Sub
End If

spalte_O = Asc(spalte_BN)

If spalte_O < 91 And spalte_N > 64 Then
    spalte_O = spalte_O - 64
ElseIf spalte_O < 123 And spalte_O > 96 Then
    spalte_O = spalte_O - 96
Else:
    MsgBox ("falsche Eingabe, nur Buchstaben von A-Z (a-z) erlaubt")
    Exit Sub
End If

For Zeile = first_line To last_line
    For Spalte = spalte_N To spalte_O
    'Cells(Zeile, spalte_N).Select
    If Cells(Zeile, Spalte).Value = "" Then
        Cells(Zeile, Spalte).Value = Cells(Zeile - 1, Spalte).Value
    End If
    Next
Next

End Sub
Im Unterschied zur Variante von Petra werden hier die Leerzellen mit dem tatsächlichen Wert gefüllt und nicht mit dem Verweis auf die vorherige Zelle (also einer Formel).

Gruß
David


  

Betrifft: AW: Automatisches Auffüllen Zellen von: Petra
Geschrieben am: 13.11.2009 13:22:10

Hi David
hier kürzer:

Sub leervoll()
Dim z
For Each z In Range("b1:b20")
    If z = "" Then
        z.Value = z.Offset(-1, 0)
    End If
Next
End Sub
da sind dann auch Werte drin
und den Rangebereich kannst Du auch noch automatisieren,wenn Du willst

Grüße Petra


  

Betrifft: AW: Automatisches Auffüllen Zellen von: David
Geschrieben am: 13.11.2009 13:35:43

Hallo Petra,

nun soviel kürzer als der Kern meines Codes ist das auch nicht:

For Zeile = first_line To last_line
    For Spalte = spalte_N To spalte_O
        If Cells(Zeile, Spalte).Value = "" Then Cells(Zeile, Spalte).Value = Cells(Zeile - 1,  _
Spalte).Value
    Next
Next
Sind auch nur 5 Zeilen, wenn auch mit ein paar mehr Zeichen. ;-)

Der Rest ist ja nur die variable Eingabe des Ranges und das Abfangen von Fehlern.

Gruß
David


  

Betrifft: AW: Automatisches Auffüllen Zellen von: Petra
Geschrieben am: 13.11.2009 13:38:56

Hi David
dann lassen wir halt den Excel-Profi entscheiden, wenn er sich denn zurückmeldet!
Schönes Wochenende
Petra


  

Betrifft: dito... von: David
Geschrieben am: 13.11.2009 13:50:50




Beiträge aus den Excel-Beispielen zum Thema "Automatisches Auffüllen Zellen"