Hallo
Es würd mich interessieren wie man Zellen zählen kann und die ausgeblendeten zwischen den aktiven Zeilen nicht mit zählt.
Dann würde ich gerne noch die Summe von den aktiven Zellen errechnen.
Die letzte Zeile mit Inhalt müsste Excel selber ausfindig machen.
Gruss & Danke
Hallo,
wenn Zeilen mit Autofilter ausgeblendet wurden:
=TEILERGEBNIS(109;Bereich)
LG
Chris
Hi Chris
Möchte mich nicht auf einen Bereich festlegen.
Suche eine VBA Funktion.
Danke
Hallo Lanzma,
ich gehe jetzt mal davon aus, dass deine Zahlen alle in Spalte A stehen, und dass keine leeren Zellen dazwischen sind.
Die ausgeblendeten Zellen habe eine Höhe von null.
Dann könnte das mit dem folgenden Code gehen:
Option Explicit
Sub zählen()
Dim z As Long, letzte As Long, anzahl As Long
Dim summe As Double
anzahl = 0
summe = 0
z = 1
letzte = Cells(z, 1).End(xlDown).Row
For z = 1 To letzte
If Rows(z).Height \> 0 Then
anzahl = anzahl + 1
summe = summe + Cells(z, 1)
End If
Next z
MsgBox "Anzahl der eingeblendeten Zellen: " & anzahl & Chr(10) & \_
"Summe in den eingeblendeten Zellen: " & summe
End Sub
Gruß, Andreas
Nun gut, du kannst dir einen Bereich definieren über Einfügen-Namen-Definieren.
Ich nenn das Ding jetzt einfach mal „BEREICH“, welcher sich auf:
=INDIREKT(A1)
bezieht, wobei in A1 dann der konkrete Bereich steht.
Schreibst du in A1 jetzt B1:B100, sucht er im Bereich B1:B100.
Nun kannst du dich in der Teilergebnisformel auf „Bereich“ beziehen, also =Teilergebnis(109;Bereich).
Dies ist der Weg ohne VBA, den ich immer bevorzuge, da VBA langsam ist.
Aber okay, über VBA gehst du folgendermaßen vor:
Suche dir zunächst ein Ereignis, in das du den Code einfügst bzw. nimm ne Schaltfläche dafür.
Die Zelle, in der das Ergebnis steht, sei A1. Suchbereich (Konstante) ist B1:B100.
const suchbereich = "B1:B100"
' schreibt die Formel rein, liefert Ergebnis
Range("A1").FormulaLocal = "=Teilergebnis(109,"&suchbereich&")"
' wandelt die Formel in feste Zahl um
Range("A1").Copy
Range("A1").Pastespecial xlPastevalues
LG
Chris
Grüezi Lanzma
Möchte mich nicht auf einen Bereich festlegen.
Das musst Du aber eh, denn ohne einen Bereich kann Excel keine Summierung durchführen. Wenn dein Bereich unterschiedlich lang ist, dann nimm halt die ganze Spalte:
=TEILERGEBNIS(109;A:A)
Suche eine VBA Funktion.
Warum?
Obige Funktion passt sich automatisch immer an die vorhandenen Daten an.
Du kannst (ab xl2007) deine Daten auch als Tabellen-Feature führen, dann kannst Du eine Ergebniszeile einfügen und dort festlegen wie die Daten einer Spalte zusammengefasst werden sollen - beim Filtern passt sich der berechnete Bereich dann ebenfalls automatisch an.
Mit freundlichen Grüssen
Thomas Ramel
Es würd mich interessieren wie man Zellen zählen kann und die
ausgeblendeten zwischen den aktiven Zeilen nicht mit zählt.
Dann würde ich gerne noch die Summe von den aktiven Zellen
errechnen.
Die letzte Zeile mit Inhalt müsste Excel selber ausfindig
machen.
Hallo Lanzma,
klick mal unten mit Rechts auf die Zeile wo links „Bereit“ steht.
Dann wähle aus, Summe oder Anzahl, oder Zählen.
Nun markiere Zellen, oder eine ganze Spalte und schaue rechts vom „Bereit“ hin…
Hinweis: Anzahl ist die Anzahl an Zellen mit Zahlwerten, Texte werden nicht gezählt.
Gruß
Reinhard
Hallo Thomas
Du kannst (ab xl2007) deine Daten auch als Tabellen-Feature
führen, dann kannst Du eine Ergebniszeile einfügen und dort
festlegen wie die Daten einer Spalte zusammengefasst werden
sollen - beim Filtern passt sich der berechnete Bereich dann
ebenfalls automatisch an.
Wusste ich nicht… muss das mal checken.
Danke
Hi Chris
Danke für die Unterstützung. Mal schauen wie ich das jetzt mache, nach den vielen Lösungsansätzen.
Gruss
klick mal unten mit Rechts auf die Zeile wo links „Bereit“
steht.
das ist wiedermal was Neues 
Danke
So was habe ich gesucht… nur die Summe funktioniert nicht !
summe = summe + Cells(z, 1)
Das müsste ich wohl noch in eine Schleife bauen.
Gruss & Danke
Hallo Lanzma,
das verstehe ich nicht. Das Aufsummieren ist doch in der Schleife. Bei mir ging es. Was genau funktioniert denn nicht. Gibt’s eine Fehlermeldung, ist die Summe am Ende falsch oder Null oder …?
Eventuell gibt’s Probleme, wenn bei deinen Zellen welche mit Text statt mit Zahlen dabei sind.
Gruß, Andreas
…nur die Summe funktioniert nicht !
summe = summe + Cells(z, 1)
Das müsste ich wohl noch in eine Schleife bauen.
Gruss & Danke
das verstehe ich nicht. Das Aufsummieren ist doch in der
Schleife. Bei mir ging es. Was genau funktioniert denn nicht.
Gibt’s eine Fehlermeldung, ist die Summe am Ende falsch oder
Null oder …?
Hallo Andreas,
ggfs. sind Leerzellen in der Spalte, dann bekommt „letzte“ den falschen Wert.
Anderer Ansatz:
Option Explicit
'
Sub zählen()
Dim z As Long, letzte As Long, anzahl As Long
Dim summe As Double
letzte = **Cells(Rows.Count, 1).End(xlUp).Row**
For z = 1 To letzte
If Rows(z).Height \> 0 Then
anzahl = anzahl + 1
summe = summe + Cells(z, 1)
End If
Next z
MsgBox "Anzahl der eingeblendeten Zellen: " & anzahl & Chr(10) & \_
"Summe in den eingeblendeten Zellen: " & summe
End Sub
Gruß
Reinhard
Hallo Reinhard,
völlig korrekt. Dein Ansatz ist besser!
Gruß, Andreas