Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Anzahl Summanden in Spalte zählen

Anzahl Summanden in Spalte zählen
26.02.2015 02:47:49
Faruk
Hallo zusammen,
folgende Situation:
Ich trage im Rahmen eines Monitorings verschiedene Geldbeträge in verschiedene Zellen. Ich benötige in diesem Monitoring unter anderem die Anzahl der eingetragenen Summanden pro Spalte (in jeder Zelle als "= 50000 + 25000 + ... + usw.)
Das derzeitige Makro habe ich aus einem Forum (ich glaube sogar von hier), dieses funktioniert jedoch nur für eine einzige Zelle. Sobald ich in der ganzen Spalte zählen lassen will, funktioniert das nicht.
Hier das Makro:

Function Summanden (rngZelle As Range) As Long
Dim strFormel As String
strFormel = rngZelle.FormulaLocal
Summanden = UBound(Split(strFormel, "+")) +1
End Function

Über jede Hilfe dankbar!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl Summanden in Spalte zählen
26.02.2015 05:04:42
Luschi
Hallo Faruk,
so sollte es funktionieren:

Function Summanden(rngZellen As Range) As Long
Dim rng As Range
Dim strFormel As String, i1 As Long, i2 As Long
i1 = 0
For Each rng In rngZellen
strFormel = rng.FormulaLocal
i2 = UBound(Split(strFormel, "+"))
If i2 > 0 Then
i1 = i1 + i2
End If
Next rng
Summanden = i1
End Function
Gruß von Luschi
aus klein-Paris

Wofür das größer-Null?
26.02.2015 09:28:48
Klaus
Hi Luschi,
wozu die Prüfung auf größer Null?

If i2 > 0 Then
i1 = i1 + i2
End If

Wenn i2 Null ist, tut es doch nicht weh i1 = i1 + i2 zu rechnen. Und negativ kann i2 auch nicht werden. Oder?
Wenn in einer Zelle der Text "Haus + Hof" steht, wird das auch als Summand gewertet. Eventuell ist eine Abfrage, ob rng wirklich eine Formel enthält?
Grüße,
Klaus M.vdT.

Anzeige
AW: Wofür das größer-Null?
26.02.2015 09:35:15
Luschi
Hallo Klaus,
wenn in der Zelle kein Pluszeichen ('+') vorhanden ist (z.B: =3 statt =3 + 5) , dann ergibt:
UBound(Split(strFormel, "+")) den Wert -1. Null ('0') scheint es in diesem Fall nicht zu geben
Gruß von Luschi
aus klein-Paris

Bei mir nicht ;-P
26.02.2015 09:46:44
Klaus

Sub Makro2()
Debug.Print UBound(Split("3+5+7", "+")) '2
Debug.Print UBound(Split("357", "+"))   'null
Debug.Print UBound(Split("=3", "+"))    'null
Range("A1").FormulaLocal = "=3"
Debug.Print UBound(Split(Range("A1").FormulaLocal, "+")) 'null
strFormel = Range("A1").FormulaLocal
Debug.Print UBound(Split(strFormel, "+")) 'null
End Sub
Ein Fall für die X-Akten?
Grüße,
Klaus M.vdT.

Anzeige
AW: Bei mir nicht ;-P
26.02.2015 17:51:11
Luschi
Hallo Klaus,
nach dem ich dem Rechner mal eine Pause gönnte und resettet habe, kommt jetzt auch '0' raus, wenn kein '+'-Zeichen in der Formel enthalten ist.
Danke & Gruß von Luschi
aus klein-Paris

AW: Anzahl Summanden in Spalte zählen
26.02.2015 10:26:13
Faruk
@Luschi:
Vielen Dank! Funktioniert mit der Ergänzung
i2 = UBound(Split(strFormel, "+") +1
Ohne das +1 zählt er immer einen Summanden zu wenig, da die erste Zahl ja ohne ein Plus davor beginnt.

AW: Anzahl Summanden in Spalte zählen
26.02.2015 17:47:53
Luschi
Hallo Faruk,
wenn in Zelle 'E5' das hier steht: =13+4+5+6+7
ergibt =Summanden(E5) (ohne + 1) bei mir den Wert 4.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Anzahl Summanden in Spalte zählen
27.02.2015 07:58:59
Klaus
Hallo Luschi,
Darum hat Faruk ja das "+1" hinten dran.
13
4
5
6
7
sind 5 Summanden, verbunden durch 4 Pluszeichen.
Ob =3 jetzt 1 Summand ist oder 0, darüber kann man streiten.
Grüße,
Klaus M.vdT.

332 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige