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

Forumthread: Wenn Bereich leer, dann 0

Wenn Bereich leer, dann 0
13.02.2017 13:15:34
Peter
Hallo zusammen
Ich suche für folgende Funktion eine VBA Lösung:
Wenn in folgenden Bereichen:
B6:B9; B13:B16; E6:E9; E13:E16; H6:H9; H3:H16; K6:K9; K13:K16; N6:N9; N13:N16; Q6:Q9; Q13:Q16; T6:T9; T13:T16; W6:W9; W13:W16
nichts steht und die Zelle leer ist, dann soll eine 0 geschrieben werden. Es soll dann jedoch möglich sein, diese Null durch eine andere Zahl überschreiben zu können. Jedoch wenn der Inhalt gelöscht wird und die Zelle wieder leer ist, dann soll wieder die Null geschrieben werden.
Hat jemand eine Idee?
Danke
Viele Grüsse,
Peter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Wohl besser mit Intersect....
13.02.2017 13:54:41
EtoPHG
Werner,
Denn was macht es für einen Sinn, den Code immer Durchzuführen, auch wenn der gewünschte Bereich von der Änderung gar nicht betroffen ist?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngBereich As Range
Dim rngZelle As Range
Set rngBereich = Intersect(Range("B6:B9, B13:B16, E6:E9, E13:E16," & _
" H6:H9, H3:H16, K6:K9, K13:K16," & _
" N6:N9, N13:N16, Q6:Q9, Q13:Q16," & _
" T6:T9, T13:T16, W6:W9, W13:W16"), Target)
If Not rngBereich Is Nothing Then
Application.EnableEvents = False
For Each rngZelle In rngBereich
If rngZelle.Value = "" Then
rngZelle = 0
End If
Next rngZelle
Application.EnableEvents = True
End If
End Sub
Gruess Hansueli
Anzeige
AW: Uuuups...
13.02.2017 14:01:29
Werner
Hallo Hansueli,
da hast du natürlich recht. Danke für den Hinweis.
Gruß Werner
AW: Uuuups...
13.02.2017 14:14:36
Peter
Hallo Hasueli
Danke für Deinen Input, funktioniert sehr gut!
Viele Grüsse,
Peter
AW: Wenn Bereich leer, dann 0
13.02.2017 14:08:46
Peter
Hallo Werner
Super, vielen Dank, Du hast mir sehr geholfen!
Viele Grüsse,
Peter
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
13.02.2017 14:51:53
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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

Zellen in Excel: Wenn Bereich leer, dann 0


Schritt-für-Schritt-Anleitung

Um in Excel die Funktion zu implementieren, dass in bestimmten Bereichen eine 0 eingetragen wird, wenn die Zelle leer ist, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Projekt-Explorer auf das Arbeitsblatt, in dem du die Funktion anwenden möchtest.
  3. Füge den folgenden Code in das Fenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngBereich As Range
    Dim rngZelle As Range
    Set rngBereich = Intersect(Range("B6:B9, B13:B16, E6:E9, E13:E16," & _
    " H6:H9, H3:H16, K6:K9, K13:K16," & _
    " N6:N9, N13:N16, Q6:Q9, Q13:Q16," & _
    " T6:T9, T13:T16, W6:W9, W13:W16"), Target)

    If Not rngBereich Is Nothing Then
        Application.EnableEvents = False
        For Each rngZelle In rngBereich
            If rngZelle.Value = "" Then
                rngZelle = 0
            End If
        Next rngZelle
        Application.EnableEvents = True
    End If
End Sub
  1. Schließe den VBA-Editor und teste die Funktion, indem du einige Zellen in den angegebenen Bereichen leer machst.

Häufige Fehler und Lösungen

  • Fehler: Die Zellen bleiben leer.
    Lösung: Stelle sicher, dass der Code in das richtige Arbeitsblatt-Modul eingefügt wurde und dass die Zellen wirklich leer sind (nicht mit einem Leerzeichen gefüllt).

  • Fehler: #WERT! Fehler in anderen Zellen.
    Lösung: Überprüfe, ob du die richtige Datenvalidierung oder Formatierung für die Zellen eingestellt hast.

  • Fehler: Die Zahl 0 wird nicht überschrieben.
    Lösung: Achte darauf, dass, wenn du eine Zahl in die Zelle eingibst, du sie wieder löschen kannst, um die 0 zurückzubekommen.


Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, kannst du auch mit einer Excel-Formel arbeiten:

=IF(A1="", 0, A1)

Diese Formel gibt 0 zurück, wenn die Zelle A1 leer ist. Du kannst dies auf die entsprechenden Zellen anwenden, um die Funktionalität zu erreichen.


Praktische Beispiele

  1. Beispiel für eine Formel:
    In Zelle A1 könnte folgende Formel stehen:

    =IF(A1="", 0, A1)

    Wenn A1 leer ist, wird 0 angezeigt.

  2. VBA-Anwendung:
    Wenn du die oben genannten Bereiche verwendest, wird beim Leeren der Zelle automatisch eine 0 eingetragen.


Tipps für Profis

  • Verwende Application.EnableEvents = False, um zu vermeiden, dass der Code in einer Endlos-Schleife läuft, wenn du Zellen änderst.
  • Du kannst die Bereiche im Code anpassen, um noch mehr Zellen einzuschließen, indem du einfach die Range erweiterst.
  • Berücksichtige, dass die Verwendung von 0 in einem Diagramm als leere Zelle interpretiert werden kann, wenn du die richtige Datenquelle einstellst.

FAQ: Häufige Fragen

1. Was passiert, wenn ich eine andere Zahl eingebe?
Wenn du eine andere Zahl eingibst, wird die 0 überschrieben. Wenn du die Zelle wieder leer machst, wird die 0 erneut eingetragen.

2. Kann ich die Formel auch in anderen Excel-Versionen verwenden?
Ja, die Formel funktioniert in allen aktuellen Excel-Versionen. Die VBA-Lösung erfordert Excel 2010 oder neuer.

3. Wie kann ich die Zelle leer lassen, wenn der Wert 0 ist?
Du kannst dies erreichen, indem du eine Formel wie =IF(A1=0, "", A1) verwendest.

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