ich möchte den Inhalt von Z.B. A4 runterkopieren bis zur nächsten gefüllten Zelle= A8 (A9 ist wieder gefüllt). Dann weiter mit A9 bis A26 (A27 ist wieder gefüllt).Also alle leeren Zellen immer nach unten füllen.Ende z.B. A6000.
Geht das ?
Gruß
Jutta
Sub Jutta()
Dim w As Variant
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("A4:A6000")
If c.Value <> "" Then w = c.Value
If c.Value <> "" Then w = c.Value
If c.Value = "" Then c.Value = w
Next c
Application.ScreenUpdating = True
End Sub
Sub Jutta()
Dim w As Variant
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("A4:A6000")
If c.Value <> "" Then w = c.Value
If c.Value = "" Then c.Value = w
Next c
Application.ScreenUpdating = True
End Sub
Sub füllt die aktive spalte mit den vorhandenen werten auf:
Sub auffuellen()
Dim zz#, sp%
Application.ScreenUpdating = False
sp = Selection.Column
For zz = 2 To 60
With ActiveSheet
If .Cells(zz, sp) = "" Then
.Cells(zz - 1, sp).Copy
.Paste Destination:=.Cells(zz, sp)
End If
End With
Next
Application.ScreenUpdating = True
End Sub
Gruß Ingo
Um in Excel Zellen auszufüllen bis zum nächsten Wert, kannst Du ein einfaches VBA-Skript verwenden. Folge diesen Schritten:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
und wähle Modul
.
Kopiere den folgenden Code in das Modul:
Option Explicit
Sub Jutta()
Dim w As Variant
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("A4:A6000")
If c.Value <> "" Then w = c.Value
If c.Value = "" Then c.Value = w
Next c
Application.ScreenUpdating = True
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Drücke ALT + F8
, wähle das Makro Jutta
und klicke auf Ausführen
.
Damit wird der Inhalt von Zelle A4 bis zur nächsten gefüllten Zelle nach unten kopiert.
Fehler: Das Makro funktioniert nicht.
Fehler: Zellen werden nicht gefüllt.
Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die Funktion „Suchen und Ersetzen“ nutzen:
Start -> Bearbeiten -> Suchen & Auswählen -> Gehe zu Spezial
.Leerzellen
und klicke auf OK
.=WENN(A1="";A2;A1)
ein, wobei A1 die erste Zelle und A2 die nächste gefüllte Zelle ist.Strg + Enter
, um die Verbindung zu den leeren Zellen herzustellen.Damit kannst Du die Zellen ohne VBA füllen.
Wenn Du beispielsweise in Zelle A4 den Wert „Test“ hast und Zelle A5 leer ist, wird durch das Skript der Inhalt von A4 in A5 kopiert. Wenn in A6 der Wert „Beispiel“ steht, wird der Wert von A6 in A7 kopiert, bis zur nächsten gefüllten Zelle.
Beispiel:
A |
---|
Test |
Beispiel |
Nach Ausführung des Skripts wird die Tabelle so aussehen:
A |
---|
Test |
Test |
Test |
Beispiel |
Beispiel |
Beispiel |
Beispiel |
Application.ScreenUpdating = False
, um die Ausführungsgeschwindigkeit des Makros zu erhöhen, indem die Bildschirmaktualisierung während der Verarbeitung deaktiviert wird.Range
-Anweisung änderst.1. Wie kann ich das Skript anpassen, um eine andere Spalte zu verwenden?
Ändere einfach die Range von Range("A4:A6000")
auf die gewünschte Spalte, z. B. Range("B4:B6000")
.
2. Funktioniert das auch in Excel Online?
Leider sind VBA-Makros nicht in Excel Online verfügbar. Du musst Excel auf Deinem Desktop verwenden, um diese Funktion zu nutzen.
3. Kann ich das Skript auch für andere Bereiche verwenden?
Ja, ändere einfach die Range im Skript, um es auf den gewünschten Bereich anzuwenden.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen