Anzeige
Archiv - Navigation
1020to1024
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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.

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige