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

Average

Average
06.10.2005 13:15:38
Daniel
HI...
Ich hatte gestern schon mal das Problem genannt und mir wurde auch geholfen. Aber leider ist es nocht nicht vollständig gelöst. Hier erstmal der Code dazu.

Private Sub Bereinigung_Click()
Const OBERGRENZE As Long = 150000
Const UNTERGRENZE As Long = 0
Const SPALTE As Integer = 6
Dim rng As Range
Dim c As Range
Dim lngAvg As Long
Set rng = Range(Cells(SPALTE, 8), Cells(Rows.Count, 8).End(xlUp))
For Each c In rng.Cells
lngAvg = WorksheetFunction.Average(rng)  --- Fehlermeldung---
If c < UNTERGRENZE Or c > OBERGRENZE Then c = lngAvg
Next
End Sub

Der code geht eine Spalte durch und ändert alle Werte die überhalb oder unterhalb der Grenzen liegen. Er ändert ihn immer in den Durschnitswert. Er bringt immer in der oben gezeigten Zeile eine Fehlermeldung. "Unable to get the Average property of the WorksheetFunction class"
Ich habe einen englische version von Excel 2002.
Das ist eine abgespeckte Version meines Workbooks.
https://www.herber.de/bbs/user/27240.xls
Kann mir jemand noch helfen? Vielen Dank im vorraus.
Daniel

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

Betreff
Datum
Anwender
Anzeige
AW: Average
06.10.2005 13:44:57
Harald
Hi Daniel,
trau keiner Statistik, die Du nicht selbst gefälscht hast ?
grins
Also zuerstmal, ich hab mir die Datei nicht angeschaut. Hab aber 2 Hinweise.
Definiere den Durchschnittswert for der Schleife, sonst wird er jedesmal neu berechnet.
lngAvg = WorksheetFunction.Average(rng)
For Each c In rng.Cells
Zweitens, ich hab die Sache nachgebaut und das lief wunderbar. Hast Du alle Punkte durch Kommata ersetzt, Textformate ?
Gruß
Harald
AW: Average
06.10.2005 13:54:23
Galenzo
lies meine Antwort auf dein ursprüngl. Posting
Viel Erfolg!
AW: Average
06.10.2005 14:13:42
Daniel
Er bringt keine Fehlermeldung. Aber er ändert auch keine Werte. Wie so net?
Danke Daniel
Anzeige
AW: Average
06.10.2005 14:40:11
Galenzo
eben nochmals getestet - funktioniert wie gefordert.
Code:

Private Sub CommandButton1_Click()
Const OBERGRENZE As Long = 150000
Const UNTERGRENZE As Long = 0
Const AB_ZEILE As Integer = 6
Const IN_SPALTE As Integer = 8
Dim rng As Range
Dim c As Range
Dim lngAvg As Long
Set rng = Cells(Rows.Count, IN_SPALTE).End(xlUp)
If rng.Row > AB_ZEILE Then
Set rng = Range(Cells(AB_ZEILE, IN_SPALTE), Cells(Rows.Count, IN_SPALTE).End(xlUp))
For Each c In rng.Cells
lngAvg = WorksheetFunction.Average(rng)
If c < UNTERGRENZE Or c > OBERGRENZE Then c = lngAvg
Next
End If
Set rng = Nothing
End Sub

Anforderung war, erst ab Zeile 6 zu beginnen. Dies wird mit der Konstanten AB_ZEILE festgelegt - kannst du entsprechnend ändern. Das gleiche gilt auch für die "Arbeitsspalte" - Konstante IN_SPALTE.
Nun muß es doch aber endlich klappen... ;-)
Anzeige
AW: Average
06.10.2005 14:55:18
Daniel
Jetzt funktioniert es. Danke. Was muss ich es ändern, das ganze auf dem Sheet "Daten" ausgeführt werden soll?
Daniel
AW: Average
06.10.2005 15:02:05
Galenzo
dann kömmt noch eine WITH-Anweisung und ein paar Punkt hinzu:

Private Sub CommandButton1_Click()
Const OBERGRENZE As Long = 150000
Const UNTERGRENZE As Long = 0
Const AB_ZEILE As Integer = 6
Const IN_SPALTE As Integer = 8
Dim rng As Range
Dim c As Range
Dim lngAvg As Long
With Worksheets("Daten")
Set rng = .Cells(Rows.Count, IN_SPALTE).End(xlUp)
If rng.Row > AB_ZEILE Then
Set rng = .Range(.Cells(AB_ZEILE, IN_SPALTE), .Cells(Rows.Count, IN_SPALTE).End(xlUp))
For Each c In rng.Cells
lngAvg = WorksheetFunction.Average(rng)
If c < UNTERGRENZE Or c > OBERGRENZE Then c = lngAvg
Next
End If
Set rng = Nothing
End With
End Sub

Viel Erfolg!
Anzeige
Dankeschön
06.10.2005 15:06:29
Daniel
Vielen herzlichen Dank. Es funktioniert. Wieder was dazu gelernt.
Dir einen schönen Tag noch.
AW: Average
06.10.2005 13:54:26
Daniel
Er soll es jedes mal neu berechnen den Durchschnitt. Und wo soll ich punkte zu Komma machen? Hä?
Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige