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

Forumthread: Nur sichtbare Zellen addieren (Spezialfall)

Nur sichtbare Zellen addieren (Spezialfall)
04.11.2008 14:06:00
Nicolas
Hallo Zusammen
Ich möchte gern nur die Werte in sichtbaren Zellen addieren. Mit der Nettosummenformel geht das aber nicht, weil bei meiner Problemstellung es kein zusammenhängender Bereich ist, sondern die Werte in Zellen der Spalten A, C, E, G... stehen.
Kann dieser VBA-Code evtl. angepasst werden:

Function NettoSumme(rngAll As Object)
Dim rngAct As Range
Dim dValue As Double
For Each rngAct In rngAll.Cells
If Rows(rngAct.Row).Hidden = False Then
dValue = dValue + rngAct.Value
End If
Next rngAct
NettoSumme = dValue
End Function


Besten Dank

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur sichtbare Zellen addieren (Spezialfall)
04.11.2008 14:51:48
Erich
Hallo Nicolas,
probier mal

Function NettoSumme(rngAll As Range)
Dim rngAct As Range
For Each rngAct In rngAll.Cells
'     If Not (rngAct.EntireRow.Hidden Or rngAct.EntireColumn.Hidden) Then
If rngAct.EntireRow.Hidden + rngAct.EntireColumn.Hidden = 0 Then
NettoSumme = NettoSumme + rngAct.Value
End If
Next rngAct
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Nur sichtbare Zellen addieren (Spezialfall)
04.11.2008 15:02:00
Nicolas
Hallo Erich
Die Formel gibt leider nur #WERT! aus
=NettoSumme(O7;Q7;S7;U7;W7;Y7;AA7;AC7;AE7;AG7;AI7;AK7)
AW: Nur sichtbare Zellen addieren (Spezialfall)
04.11.2008 15:33:12
Erich
Hi ,
das ist kein Wunder. Du rufst du Funktion mit ca. 12 Parametern auf, sie erwartet aber nur einen einzigen.
Eine Möglichkeit:
Aufruf in der Tabelle mit einer Zeichenkette, die die Bereiche festlegt:
=NettoSumme("O7,Q7,S7,U7,W7,Y7,AA7,AC7,AE7,AG7,AI7,AK7")
Und so sieht dann die Prozedur aus:

Function NettoSumme(strBereich As String)
Dim rngC As Range
For Each rngC In Range(strBereich)
If rngC.EntireRow.Hidden + rngC.EntireColumn.Hidden = 0 Then _
NettoSumme = NettoSumme + rngC
Next rngC
End Function

Nachteil:
Wenn du Zeilen oder Spalten einfügst oder löschst, musst du den Text im Funktionsaufruf anpassen,
das geschieht dann nicht automatisch.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Nur sichtbare Zellen addieren (Spezialfall)
04.11.2008 15:46:26
Nicolas
Hi Erich
Super, so ist es OK für mich.
Besten Dank
Nicolas
AW: Nur sichtbare Zellen addieren (Spezialfall)
04.11.2008 15:02:42
Erich
Hi nochmal,
wenn du die Funktion nur in VBA, also nicht als UDF (benutzerdef. Tabellenfunktion) brauchst,
gehts auch einfacher:

Function NettoSumme(rngAll As Range)
NettoSumme = Application.Sum(rngAll.SpecialCells(xlCellTypeVisible))
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.: rngAll ist ein Range, muss/sollte also nicht als "Object" deklariert werden.

Anzeige
;

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

Nur sichtbare Zellen addieren in Excel


Schritt-für-Schritt-Anleitung

Um in Excel nur die sichtbaren Zellen zu summieren, kannst Du eine benutzerdefinierte Funktion (UDF) in VBA erstellen. Folge diesen Schritten:

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

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Function NettoSumme(rngAll As Range)
        NettoSumme = Application.Sum(rngAll.SpecialCells(xlCellTypeVisible))
    End Function
  4. Schließe den VBA-Editor und gehe zurück zu deinem Arbeitsblatt.

  5. Verwende die Funktion in einer Zelle, indem Du folgendes eingibst:

    =NettoSumme(A1:A10)

    Dabei ersetzt Du A1:A10 durch den Bereich, den Du summieren möchtest.


Häufige Fehler und Lösungen

  • Fehler #WERT!: Dieser Fehler tritt auf, wenn Du die Funktion mit mehreren Parametern anstatt eines Bereichs aufrufst. Stelle sicher, dass Du nur einen Bereich angibst, z.B. =NettoSumme("O7,Q7,S7").

  • Funktion wird nicht gefunden: Überprüfe, ob Du die Funktion korrekt im VBA-Editor gespeichert hast und dass die Makros in Excel aktiviert sind.


Alternative Methoden

Wenn Du die Funktion nicht in VBA einsetzen möchtest, kannst Du auch die SUBTOTAL-Funktion verwenden, die speziell für gefilterte Daten gedacht ist:

=SUBTOTAL(109, A1:A10)

Die 109 steht für die Summe nur von sichtbaren Zellen. Diese Methode funktioniert gut, wenn Du Excel-Filter anwendest.


Praktische Beispiele

  1. Eingeblendete Zellen summieren: Angenommen, Du hast in den Zellen A1:A10 einige Werte und einige Zeilen sind ausgeblendet. Um nur die sichtbaren Zellen zu summieren, verwende:

    =NettoSumme(A1:A10)
  2. Summe bei gefilterten Daten: Wenn Du einen Autofilter auf eine Tabelle angewendet hast und nur die angezeigten Zellen summieren möchtest, kannst Du die SUBTOTAL-Funktion wie folgt verwenden:

    =SUBTOTAL(109, B2:B20)

Tipps für Profis

  • Verwende SpecialCells: Wenn Du nur mit sichtbaren Zellen arbeiten möchtest, ist die Verwendung von SpecialCells(xlCellTypeVisible) der effizienteste Weg.
  • Makros zur Automatisierung: Automatisiere den Prozess, indem Du ein Makro schreibst, das regelmäßig die Summe der sichtbaren Zellen aktualisiert.
  • Dokumentation: Achte darauf, Deine VBA-Funktionen gut zu dokumentieren, damit Du und andere Benutzer sie leicht verstehen und nutzen können.

FAQ: Häufige Fragen

1. Wie kann ich die Summe nur von eingeblendeten Zeilen in einer Tabelle berechnen?
Verwende die Funktion NettoSumme und übergib den Bereich der Tabelle.

2. Was ist der Unterschied zwischen SUBTOTAL und SUM?
SUBTOTAL kann nur die Werte sichtbarer Zellen summieren, während SUM alle Zellen summiert, unabhängig von ihrem Sichtbarkeitsstatus.

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