Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Leere Zellen mit Macro automatisch füllen

Leere Zellen mit Macro automatisch füllen
28.12.2016 18:07:39
JS
Hallo zusammen,
ich habe gerade versucht mit dem folgenden Code leere Zellen mit Punkten zu befüllen.

Public Sub LeereZellenmitNullenfüllen()
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Range("A3:Z200")
For Each Zelle In Bereich
If Zelle.Value = "" Then
Zelle.Value = "."
End If
Next
End Sub

Das funktioniert auch eigentlich ganz gut. Wenn ich allerdings weitere Spalten (der Code müsste _ die Spalten A bis EP abdecken) einbauen möchte

Public Sub LeereZellenmitNullenfüllen()
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Range("A3:EP200")
For Each Zelle In Bereich
If Zelle.Value = "" Then
Zelle.Value = "."
End If
Next
End Sub

kommt ein Runtime-Error (13). Habt ihr eine Idee, wie man den Code anpassen muss, damit es klappt?
Vielen Dank und viele Grüße
JS
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Leere Zellen mit Macro automatisch füllen
28.12.2016 18:15:15
Crazy
Hallo
bei mir kommt kein Error
welche Zeile im Code wird denn bei dir
markiert wenn du in der Fehlermeldung auf debuggen klickst?
MfG Tom
AW: Leere Zellen mit Macro automatisch füllen
28.12.2016 18:37:20
Gerd
Hallo JS,
bei mir tritt ein Fehler ebenfalls nur "mit Gewalt" auf.
Überlege, was du mit jetzt gelb markierten Formelfehlern machen möchtest.
Public Sub LeereZellenmitNullenfuellen()
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Range("A3:EP200")
For Each Zelle In Bereich
If IsError(Zelle.Value) Then
Zelle.Interior.Color = vbYellow
ElseIf Zelle.Value = "" Then
Zelle.Value = "."
End If
Next
End Sub
Gruß Gerd
Anzeige
AW: Leere Zellen mit Macro automatisch füllen
28.12.2016 18:55:36
JS
Im Code ist dann die Zeile mit der Range-Definition markiert.
Ich habe angenommen, dass die A3:EP200 mglw. zu viele Spalten für den Range-Befehl enthalten könnte, da der Error bei A3:Z200 nicht auftritt. Da klappt alles. Dem ist aber nicht so?
Was meinst Du mit "mit Gewalt" kannst Du den Fehler reproduzieren?
Ist die Benennung der Spalte EP im Code mit EP richtig oder muss ich hier etwas anderes angeben?
Viele Grüße
JS
Anzeige
AW: Leere Zellen mit Macro automatisch füllen
28.12.2016 19:21:56
Gerd
Hallo JS
Bereits xl97 hatte mehr als 146, nämlich 256 Spalten.
An der Range-Definition liegt es m.E. nicht.
Den Fehler kann ich reproduzieren, wenn ich z.B. #NV, den Rückgabewert von SVerweis-Fehlern, oder einen anderen Formel-Fehler-Wert in eine Zelle schreibe.
Und testen musst du mit meinem Code natürlich nicht. Du kannst ruhig auch so weiterfragen. :-)
cu
Gerd
Anzeige
AW: Leere Zellen mit Macro automatisch füllen
30.12.2016 10:02:53
JS
Hallo zusammen,
vielen Dank für Eure Hilfe.
Hat alles prima geklappt.
Beim ersten Anlauf ist das Skrit offenbar über ein paar #value Felder gestolpert.
Viele Grüße und einen guten Start ins neue Jahr
JS
AW: Leere Zellen mit Macro automatisch füllen
29.12.2016 10:31:52
Daniel
Hi
Probierte mal das:
Range("A3:EP200").Replace "", ".", lookat:=xlwhole
Oder das:
If Range("EP200").value = "" Then Range("EP200").value = "."
Range("A3:EP200").specialcells(xlcelltypeblanks).value="."
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Leere Zellen in Excel automatisch füllen


Schritt-für-Schritt-Anleitung

Um leere Zellen in Excel mit einem bestimmten Wert, wie z.B. 0 oder einem Punkt, automatisch zu füllen, kannst Du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen und dann auf Modul.

  3. Kopiere und füge den folgenden Code ein:

    Public Sub LeereZellenMitWertFuellen()
        Dim Bereich As Range
        Dim Zelle As Range
        Set Bereich = Range("A3:EP200") ' Bereich anpassen, falls nötig
        For Each Zelle In Bereich
            If Zelle.Value = "" Then
                Zelle.Value = 0 ' Hier kannst Du auch einen anderen Wert einfügen
            End If
        Next
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Deinem Excel-Dokument.

  5. Führe das Makro aus: Drücke ALT + F8, wähle das Makro LeereZellenMitWertFuellen aus und klicke auf Ausführen.

Dieses einfache Makro füllt alle leeren Zellen im Bereich A3 bis EP200 mit dem Wert 0. Du kannst den Wert nach Bedarf anpassen.


Häufige Fehler und Lösungen

  • Runtime-Error (13): Wenn Du einen Fehler erhältst, könnte dies an einer Zelle mit einem Fehlerwert (wie #NV) liegen. Verwende den folgenden Code, um solche Zellen zu ignorieren:

    Public Sub LeereZellenMitWertFuellen()
        Dim Bereich As Range
        Dim Zelle As Range
        Set Bereich = Range("A3:EP200")
        For Each Zelle In Bereich
            If Not IsError(Zelle.Value) Then
                If Zelle.Value = "" Then
                    Zelle.Value = 0
                End If
            End If
        Next
    End Sub
  • Leere Felder nicht mit 0 füllen: Wenn Du leere Zellen mit einem anderen Wert füllen möchtest, ändere einfach Zelle.Value = 0 in den gewünschten Wert.


Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du auch die folgende Methode nutzen:

  1. Wähle den Bereich aus, in dem Du die leeren Zellen auffüllen möchtest.
  2. Gehe zu Start > Suchen & Auswählen > Gehe zu Sonder und wähle Leerzellen.
  3. Klicke mit der rechten Maustaste auf die ausgewählten leeren Zellen und wähle Inhalt einfügen.
  4. Wähle Wert und gib den Wert ein, mit dem Du die leeren Zellen füllen möchtest.

Diese Methode ist besonders nützlich, wenn Du schnell leere Zellen in einer Excel-Tabelle ausfüllen möchtest.


Praktische Beispiele

  1. Leere Zellen mit 0 füllen: Verwende den oben beschriebenen VBA-Code, um alle leeren Zellen in einem bestimmten Bereich mit 0 zu füllen.
  2. Leere Zellen mit einem Text füllen: Ändere Zelle.Value = 0 in Zelle.Value = "DeinText" im VBA-Code, um die Zellen mit einem bestimmten Text zu befüllen.
  3. Leere Zellen mit Wert darüber füllen: Verwende die folgende Formel in einer benachbarten Zelle:

    =WENN(A3="", B2, A3)

    Hierbei wird eine leere Zelle mit dem Wert der Zelle darüber gefüllt.


Tipps für Profis

  • Automatisierung: Du kannst das Makro so anpassen, dass es bei jedem Öffnen der Datei automatisch ausgeführt wird, indem Du den Code in die Workbook_Open()-Methode einfügst.
  • Fehlerverfolgung: Verwende die Debug.Print-Anweisung, um Werte der Zellen während der Ausführung des Makros zu protokollieren und Fehler zu verfolgen.
  • Benutzerdefinierte Werte: Erstelle ein Eingabeformular, um dynamisch festzulegen, mit welchem Wert die leeren Zellen gefüllt werden sollen.

FAQ: Häufige Fragen

1. Wie kann ich leere Zellen in Excel mit 0 füllen?
Verwende ein VBA-Makro oder die Methode über Suchen & Auswählen, um leere Zellen schnell zu befüllen.

2. Was tun, wenn mein Makro nicht funktioniert?
Überprüfe, ob es Zellen mit Fehlerwerten gibt. Nutze den angepassten Code, der solche Zellen ignoriert.

3. Kann ich leere Zellen automatisch mit dem Wert darüber füllen?
Ja, verwende die Formel =WENN(A3="", B2, A3), um dies zu erreichen.

4. Ist VBA notwendig, um leere Zellen zu füllen?
Nein, Du kannst auch die integrierten Excel-Funktionen verwenden, wenn Du kein VBA nutzen möchtest.

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