Anzeige
Archiv - Navigation
1236to1240
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

Function Sum_Visible_Cells

Function Sum_Visible_Cells
Kai
Hallo zusammen,
ich benutze folgenden Code:
Function Sum_Visible_Cells(Cells_To_Sum As Object)
'Funktion, damit nur eingeblendete Zellen berechnet werden
Application.Volatile
For Each Cell In Cells_To_Sum
If Cell.Rows.Hidden = False Then
If Cell.Columns.Hidden = False Then
If IsNumeric(Cell.Value) Then
total = total + Cell.Value
End If
End If
End If
Next
Sum_Visible_Cells = total
End Function
Und benutze ihn dann im Worksheet so:
=Sum_Visible_Cells(:)
In Office 2003 funktioniert er bei mir wunderbar. Die Datei wird aber auch auf anderen Rechner benutzt und dann tritt bei einigen der Fehler Name auf. Ist der Code mit manchen Excelversionen nicht kompatibel?
Vielen Dank und viele Grüße
Kai

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

Betreff
Benutzer
Anzeige
Na, ich weiß ja nicht; das soll im TabBlatt ...
03.11.2011 14:23:35
Luc:-?
…Kai,
=Sum_Visible_Cells(:) ?! Das musst du mal erklären!
Gruß Luc :-?
AW: Na, ich weiß ja nicht; das soll im TabBlatt ...
03.11.2011 14:32:49
Kai
Hi Luc:-?,
Okay das war dumm beschrieben von mir. Dort setze ich die Bereiche ein die summiert werden sollen z.B.:
=Sum_Visible_Cells(M16:X16)

Die Formel gibt es dann an verschiedenen Stellen mit verschiedenen Bereichen in dem Tabellenblatt.
Gruß
Kai
p.s. Vielen Dank für Deine Mail, schaffe es leider erst morgen nach der Arbeit zu Antworten ;-)
Option Explicit ?
03.11.2011 15:42:28
CitizenX
Hi,
For Each Cell In Cells_To_Sum

Cell ist nicht deklariert,schon mal mit Dim Cell as Range probiert?
Grüße
Steffen
Anzeige
Aha, du bist das, ...
03.11.2011 16:39:03
Luc:-?
…Kai;
ich würde das so schreiben…

Function SumNoHid(ByRef Bereich As Range)
Dim berHid As Range, blvHid As Range
For Each blvHid In Bereich
If blvHid.EntireColumn.Hidden Or blvHid.EntireRow.Hidden Then
If berHid Is Nothing Then _
Set berHid = blvHid Else Set berHid = Union(berHid, blvHid)
End If
Next blvHid
With WorksheetFunction
SumNoHid = .Sum(Bereich)
If Not berHid Is Nothing Then _
SumNoHid = SumNoHid - .Sum(berHid)
End With
Set berHid = Nothing
End Function
…und natürlich am Anfange des Moduls Option Explicit ! Fürchte, dass das Volatile am Anfang deiner Fkt nichts nutzt, denn nur durch Ausblenden ändert sich ja nicht wirklich was an der KalkBasis. Wenn per Pgm ausgeblendet wird, muss dann gleichzeitig eben auch die Neuberechnung angestoßen wdn (.Calculate).
Gruß Luc :-?
PS: Gut, diesmal nicht im Spam! Evtl sende ich noch 'nen kleinen Nachtrag (nur Text).
Anzeige
AW: Aha, du bist das, ...
04.11.2011 09:07:54
Kai
Hallo zusammen,
Danke für eure Antworten! Ich hab es mit Luc:-?`s Lösung probiert und wie die andere Lösung klappt es jetzt bei mir. Muss es jetzt weiter testen lassen, ob es bei den anderen auch funktioniert. Hoffe ich kann noch eine Antwort schreiben, ob es funktioniert, bevor der Thread verschwindet.
p.s. doch ist leider wieder im Spam gelandet, aber jetzt sehe ich öfter mal im Spam nach und bin aufmerksamer. Hoffe es klappt jetzt auch, dass die Mails automatisch nicht als Spam angesehen werden, hab das mal versucht so einzustellen. Aber nochmal rutscht mir das nicht so lange durch hoffe ich.
Anzeige
Übrigens gibt's noch 'ne andere Möglichkeit, ...
04.11.2011 14:41:33
Luc:-?
…Kai;
ganz ohne Schleife, dafür mit SpecialCells, aber diese Methode hat nur einen kleinen Nachteil — sie fktt nicht in Funktionsprozeduren! Offensichtl macht sie etwas, was die Xl-Steuerung TabBlattFmln/-Fktt verbietet und deshalb verhindert. Aber mit 1-2 zusätzl Subprozeduren, die allerdings von der udFkt physisch entkoppelt sein müssen, sonst wdn sie als Bestandteil der udFkt behandelt, kann man das schaffen. Ist hier zwar nicht unbedingt erforderl, kann aber für andere Zwecke (evtl auch größere Datenmengen, wenn eine solche udFkt nicht in großer Zahl verwendet wird) hilfreich sein. Bei (allgemeinem) Interesse stelle ich hier auch gern PgmCode u/o BspLösung für das obige Problem ein. Ansonsten habe ich dazu hier schon vor Jahren abundan etwas geschrieben → ist also dem Archiv nicht unbekannt.
Gruß Luc :-?
PS: Viel Glück bei Test und mit dem Spam! Bis bald!
Besser informiert mit …
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige