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

Mittelwert in Monaten in VBA

Forumthread: Mittelwert in Monaten in VBA

Mittelwert in Monaten in VBA
05.11.2004 17:29:04
Wolfgang
In Spalte A stehen vollständige Datumsangaben. (jede Zeile der nachfolgende Tag) Mein Makro errechnet den Mittelwert der Werte in Spalte B, C, D und E eines jeweiligen Monats (aus ComboBox).
Es klappt gut, bis auf den Fall, daß der Monat, indem nicht alle Werte vollständig eingetragen sind, falsch errechnet wird.
Kann man das Problem lösen ?
Hoffe auf Eure Hilfe
MfG
Wolfgang
Option Explicit
Public datu, dat

Private Sub ComboBox1_Change()
Dim r, b, h, f As Integer
Dim betr, betr1
Dim ma  As Integer
Label1.Caption = ""
TextBox1 = ""
ma = Range("A65536").End(xlUp).Row
dat = ComboBox1.Text
r = 2
Do While Format(Cells(r, 1), "MMMM") <> dat
r = r + 1
If r >= ma Then
Label1.Caption = "Keine Daten vorhanden"
Exit Do
End If
Loop
If Format(Cells(r, 1), "MMMM") = dat Then
b = r
End If
Do While Format(Cells(r, 1), "MMMM") = dat
betr = (betr + Cells(r, 2) + Cells(r, 3) + Cells(r, 4) + Cells(r, 5))
r = r + 1
betr1 = betr / (r - b) / 4
Loop
TextBox1 = Format(betr1, "#,##0.00 ")
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Mittelwert in Monaten in VBA
05.11.2004 21:48:42
Wolfgang
Habe selbst eine Lösung gefunden.
Gruß Wolfgang
Und wie sieht die Lösung aus?........oT.
AndréL.
AW: Und wie sieht die Lösung aus?........oT.
06.11.2004 14:56:47
Wolfgang
So ,Gruß Wolfgang:
Option Explicit
Public datu, dat

Private Sub ComboBox1_Change()
Dim r, b, h, f As Integer
Dim betr, betr1
Dim ma  As Integer
Label1.Caption = ""
TextBox1 = ""
ma = Range("A65536").End(xlUp).Row
dat = ComboBox1.Text
r = 2
Do While Format(Cells(r, 1), "MMMM") <> dat
r = r + 1
If r >= ma Then
Label1.Caption = "Keine Daten vorhanden !"
Exit Do
End If
Loop
If Format(Cells(r, 1), "MMMM") = dat Then
b = r
End If
Do While Format(Cells(r, 1), "MMMM") = dat
betr = WorksheetFunction.Average(Range(Cells(b, 2), Cells(r, 5)))
r = r + 1
Loop
TextBox1 = Format(betr, "#,##0.00 ")
End Sub

Anzeige
;

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