Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

falsche Funktionswerte nach Arbeitsblattwechsel

Forumthread: falsche Funktionswerte nach Arbeitsblattwechsel

falsche Funktionswerte nach Arbeitsblattwechsel
02.12.2005 21:45:00
Peter
Hallo zusammen,
mein VBA-Problem besteht darin, dass ich eine Funktion geschrieben habe, die zwar funktioniert wie sie soll, nur dass bei einem Arbeitsblattwechsel "falsche" Parameter ausgewertet werden. Konkret soll die Funktion im jeweils verwendeten Arbeitsblatt die Standardabweichung einer Gruppe von Werten berechnen. Im Gegensatz zur Excelinternen Funktion sollen "Gewichtungsfaktoren" möglich sein, d.h. wie oft kommt welcher Wert in der auszuwertenden Liste vor.
Wechsle ich nun das Arbeitsblatt und editiere dort eine Zelle, so "saugt" die im anderen Arbeitsblatt verwendete Funktion die falschen Werte aus dem aktuellen Arbeitsblatt.
Vielen Dank schonmal für Eure Hilfe
Peter
Die Funktion sieht folgendermassen aus:
Private Function stabw(gewichtung As Range, werte As Range) As Double
stabw = 0
Dim summe As Double
Dim anzahl As Integer
Dim durchschnitt As Double
Dim i As Integer
Application.Volatile True
stabw = 0
anzahl = WorksheetFunction.Sum(gewichtung)
summe = WorksheetFunction.SumProduct(gewichtung, werte)
If anzahl "größer" 0 Then
durchschnitt = summe / anzahl
End If
If anzahl = 1 Then GoTo abbruch
For i = 0 To gewichtung.Rows.Count - 1
stabw = stabw + (Cells(gewichtung.Row + i, gewichtung.Column).Value) * _
((Cells(werte.Row + i, werte.Column).Value - durchschnitt) ^ 2)
Next i
stabw = (stabw / (anzahl - 1)) ^ 0.5
abbruch:
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: falsche Funktionswerte nach Arbeitsblattwechse
02.12.2005 22:15:37
Matthias
Hallo Peter,
schreibe mal statt

stabw = stabw + (Cells(gewichtung.Row + i, gewichtung.Column).Value) * _
((Cells(werte.Row + i, werte.Column).Value - durchschnitt) ^ 2)

so:

stabw = stabw + (gewichtung.Offset(1,0) * Werte.Offset(1,0) - durchschnitt) ^ 2)

Denn Cells ohne Voranstellung des Blattes bezieht sich immer auf das aktive Blatt!
Gruß Matthias
Anzeige
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:20:44
Peter
Hallo Matthias,
vielen Dank für Ihre schnelle Hilfe.
Leider hab ichs bis jetzt mit Ihrem Vorschlag nicht zusammengebracht, dass mir Excel den Wert über die .Offset-Variante ausrechnet.
Danke trotzdem
Peter
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:44:37
Peter
Hallo Matthias,
es schein an der Verwendung des Parameters bei
application.volatile gelegen zu haben.
ich hab aus dem "true" ein "false" gemacht und nun scheints korrekt zu funktionieren.
beste Grüße
Peter
Anzeige
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:44:46
Peter
Hallo Matthias,
es schein an der Verwendung des Parameters bei
application.volatile gelegen zu haben.
ich hab aus dem "true" ein "false" gemacht und nun scheints korrekt zu funktionieren.
beste Grüße
Peter
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:45:15
Peter
Hallo Matthias,
es schein an der Verwendung des Parameters bei
application.volatile gelegen zu haben.
ich hab aus dem "true" ein "false" gemacht und nun scheints korrekt zu funktionieren.
beste Grüße
Peter
Anzeige
AW: falsche Funktionswerte nach Arbeitsblattwechse
05.12.2005 15:45:19
Peter
Hallo Matthias,
es schein an der Verwendung des Parameters bei
application.volatile gelegen zu haben.
ich hab aus dem "true" ein "false" gemacht und nun scheints korrekt zu funktionieren.
beste Grüße
Peter
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige