Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Inhalt ausfüllen bis zur nächsten gefüllten Zelle

Forumthread: Inhalt ausfüllen bis zur nächsten gefüllten Zelle

Inhalt ausfüllen bis zur nächsten gefüllten Zelle
07.11.2003 09:34:28
Jutta
Hallo,
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
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt ausfüllen bis zur nächsten gefüllten Zelle
07.11.2003 09:45:46
WernerB.
Hallo Jutta,

wie gefällt Dir das:

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 w = c.Value
If c.Value = "" Then c.Value = w
Next c
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.

P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter (siehe Forums-FAQ).
Anzeige
AW: Inhalt ausfüllen bis zur nächsten gefüllten Zelle
07.11.2003 09:49:32
Jutta
Hallo Werner,

das gefällt mir sehr gut !
Danke !

Jutta
Kleine Korrektur
07.11.2003 09:48:21
WernerB.
Hallo Jutta,

da war eine Zeile doppelt drin. So ist's richtig:

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

Gruß WernerB.
Anzeige
AW: Kleine Korrektur
07.11.2003 09:51:36
Jutta
Hallo Werner,

weiß zwar nicht wie sich das ausgewirkt hätte, es hat (meiner Meinung nach) schon vorher perfekt geklappt !

Gruß

Jutta
VBA-Lösung
07.11.2003 10:16:19
IngoG
hallo Jutta,
untenstehende

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
Anzeige
AW: VBA-Lösung
13.11.2003 08:31:12
Jutta
Hallo Ingo,

Danke !

Gruß

Jutta
;
Anzeige

Infobox / Tutorial

Inhalt ausfüllen bis zur nächsten gefüllten Zelle


Schritt-für-Schritt-Anleitung

Um in Excel Zellen auszufüllen bis zum nächsten Wert, kannst Du ein einfaches VBA-Skript verwenden. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul.

  3. 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
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. 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.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass Du die richtige Range (A4:A6000) angegeben hast und dass das Makro aktiviert ist. Prüfe auch, ob Makros in Deinen Excel-Sicherheitseinstellungen erlaubt sind.
  • Fehler: Zellen werden nicht gefüllt.

    • Lösung: Überprüfe, ob die Zellen in der Range leer sind und ob die Schleife korrekt durch die Zellen iteriert.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die Funktion „Suchen und Ersetzen“ nutzen:

  1. Wähle die Zellen aus, die Du auffüllen möchtest.
  2. Gehe zu Start -> Bearbeiten -> Suchen & Auswählen -> Gehe zu Spezial.
  3. Wähle Leerzellen und klicke auf OK.
  4. Gib in die aktive Zelle die Formel =WENN(A1="";A2;A1) ein, wobei A1 die erste Zelle und A2 die nächste gefüllte Zelle ist.
  5. Drücke Strg + Enter, um die Verbindung zu den leeren Zellen herzustellen.

Damit kannst Du die Zellen ohne VBA füllen.


Praktische Beispiele

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

Tipps für Profis

  • Verwende die Funktion Application.ScreenUpdating = False, um die Ausführungsgeschwindigkeit des Makros zu erhöhen, indem die Bildschirmaktualisierung während der Verarbeitung deaktiviert wird.
  • Wenn Du mehrere Spalten gleichzeitig auffüllen möchtest, passe den Code entsprechend an, indem Du die Range-Anweisung änderst.
  • Experimentiere mit bedingten Formatierungen, um leere Zellen visuell hervorzuheben, bevor Du das Makro ausführst.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige