Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
748to752
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
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Benutzerdefinierte Funktion rechnet falsch

Benutzerdefinierte Funktion rechnet falsch
31.03.2006 08:58:49
Florian
Hallo,
ich habe folgende Funktion geschrieben:

Function SummeNachRechtsMitWarnung(Zelle As Range, Laenge As Integer)
' Summiert "Zelle" aus gesehen die sich selber und die nächsten rechten "Laenge" Zellwerte
Application.Volatile
Dim Aktiv_Zeile, Aktiv_Spalte As Integer
Dim n As Integer
Dim Warnung As Boolean
Dim Summe As Double
Warnung = False
Aktiv_Zeile = Zelle.Row
Aktiv_Spalte = Zelle.Column
Summe = 0
For n = Aktiv_Spalte To Aktiv_Spalte + Laenge - 1
If Not (Cells(Aktiv_Zeile, n).Value = "---" _
Or Cells(Aktiv_Zeile, n).Value = "" _
Or Cells(Aktiv_Zeile, n).Value = " ") Then
Summe = Summe + Cells(Aktiv_Zeile, n).Value
Else
Warnung = True
End If
' auskommentiert: Wert Null soll hier erlaubt sein!
' If Cells(Aktiv_Zeile, n).Value = 0 Then
'   Warnung = True
' End If
Next n
If Warnung Then
SummeNachRechtsMitWarnung = "inc. / sum = " & Summe
Else
SummeNachRechtsMitWarnung = Summe
End If
End Function

Wenn ich diese Funktion in einem Excel-Blatt benutze, rechnet sie nach erneutem Aufruf von dem Blatt nicht richtig. Wenn man das Blatt neu berechnen lässt, kommt allerdings das korrekte Ergebnis. Auch ein

Sub Workbook_Open()
Application.Calculate
End Sub

bringt keine Abhilfe.
Langer Post, kurze Frage: was mache ich falsch? :-)

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzerdefinierte Funktion rechnet falsch
31.03.2006 10:05:49
Werner
Hallo Florian,
falls die Warnmeldung nicht unbedingt nötig ist, bietet Excel in der Funktion BEREICH.VERSCHIEBEN bereits eine Lösung mit Bordmitteln, z.B.
=SUMME(BEREICH.VERSCHIEBEN(A1,0,1,1,5))
will heissen:
Summiere einen Bereich, der
von A1 aus gesehen,
0 Zeilen (nach unten) versetzt,
1 Spalte (nach rechts) versetzt,
1 Reihe hoch und
5 Spalten breit ist.
Die Parameter kann man auch in Zellen eintragen und so den zu summierenden Bereich
sehr flexibel variieren.
Vielleicht hilft's ja.
Gruß
Werner
AW: Benutzerdefinierte Funktion rechnet falsch
31.03.2006 11:12:53
Florian
Hallo,
danke für die Antwort.
Leider geht es genau um die Flag "inc."...
Ich könnte das sicherlich auch mit Wenn(...) und dem Summe(Bereich.Verschieben(...)) machen (letzteres wird in dem Table an anderen Stellen verwendet), aber würde eben trotzdem gerne wissen, warum das so nicht funktioniert. Irgendwann baut man ja auch mal Funktionen, die viel tollere Dinge machen :-)
Grüße,
Florian
Anzeige
AW: Benutzerdefinierte Funktion rechnet falsch
31.03.2006 15:55:04
Leo
Hi,
verwende besser Application.Caller für die Zelle.
mfg Leo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige