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

Forumthread: Mittelwert mit VBA wird nicht richtig berechnet

Mittelwert mit VBA wird nicht richtig berechnet
12.11.2015 21:43:54
Manuel
Hi Leute,
ich habe ein kleines Problem, bei dem ich nicht weiter komme. Ich versuche mit meiner Formel den Mittelwert aller eingeblendeten Reihen zu ermitteln, der dann in B2 eingetragen wird. Mit diesem Wert werden dann noch weitere Rechnungen vorgenommen, die natürlich alle nicht stimmen können wenn schon der Mittelwert falsch ist.
Die Reihen blende ich ein/aus über einen Filter, der über eine ComboBox gesteuert wird. Sprich es wird nur das angezeigt was in der ComboBox ausgewählt wurde. Nur ist der Berechnete Mittelwert nie richtig und egal was ich aus der ComboBox auswähle verschieden.
Weiß einer von euch bescheid wo der Fehler liegt?
Hier mein Code:
Sub Formel_einfügen()
Dim lnglast As Long
Application.ScreenUpdating = False
Sheets("Cost_Developing").Unprotect
lnglast = Sheets("Cost_Developing").Range("A65536").End(xlUp).Row
Sheets("Cost_Developing").Cells(1, 2).Value = Application.WorksheetFunction.Average(Range(Cells( _
4, 6), Cells(lnglast, 6)))
For z = 4 To lnglast
Sheets("Cost_Developing").Cells(z, 8).Value = Sheets("Cost_Developing").Cells(1, 2) * Sheets(" _
Cost_Developing").Cells(1, 1) / 100
Sheets("Cost_Developing").Cells(z, 9).Value = Sheets("Cost_Developing").Cells(1, 2) * Sheets(" _
Cost_Developing").Cells(1, 3) / 100
Sheets("Cost_Developing").Cells(z, 10).Value = Sheets("Cost_Developing").Cells(1, 2).Value
Next z
Application.ScreenUpdating = True
End Sub
Danke und liebe Grüße,
Manuel

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Mittelwert mit VBA wird nicht richtig berechnet
12.11.2015 22:07:00
Sepp
Hallo Manuel,
mit .Average berechnest du den Mittelwert über alle Zellen, egal ob sichtbar oder nicht.
Du musst mit .SubTotal(1,... (Teilergebnis) rechnen.
Sub Formel_einfügen()
Dim lnglast As Long, Z As Long

Application.ScreenUpdating = False

With Sheets("Cost_Developing")
  .Unprotect
  lnglast = .Range("A65536").End(xlUp).Row
  .Cells(1, 2).Value = Application.Subtotal(1, .Range(.Cells(4, 6), .Cells(lnglast, 6)))
  For Z = 4 To lnglast
    .Cells(Z, 8).Value = .Cells(1, 2) * .Cells(1, 1) / 100
    .Cells(Z, 9).Value = .Cells(1, 2) * .Cells(1, 3) / 100
    .Cells(Z, 10).Value = .Cells(1, 2).Value
  Next
End With

Application.ScreenUpdating = True
End Sub

Gruß Sepp

Anzeige
AW: Mittelwert mit VBA wird nicht richtig berechnet
13.11.2015 10:47:52
Herbert
Hallo Sepp, hallo Manuel,
die Zeile "lnglast = .Range("A65536").End(xlUp).Row" rechnet natürlich nur so lange richtig, wie die letzte belegte Zeile nicht über 65536 hinausgeht. Falls das aber doch mal der Fall sein sollte und ab Excel 2007 sowieso empfehlenswert, würde ich die folgende Zeile verwenden, dann bist Du auf der sicheren Seite:
lnglast = Cells(Rows.Count, 1).End(xlUp).Row
Servus

Anzeige
...schlechte Empfehlung Herbert
13.11.2015 11:21:05
EtoPHG
.... ;-)
die Punkte sollte man keinesfalls vergessen!
lnglast = .Cells(.Rows.Count, 1).End(xlUp).Row
Gruess Hansueli

AW: ...schlechte Empfehlung Herbert
13.11.2015 11:34:51
Herbert
Ok, OK, OK, Asche auf mein Haupt! Diesen . habe ich vergessen. Aber ich bin ja nicht der Papst, der von sich behauptet "unfehlbar" zu sein! ;o)=)
Servus

Anzeige
Nicht ein . sondern 2 . ! (owT) ;-)
13.11.2015 13:00:19
EtoPHG

AW: ...schlechte Empfehlung Herbert
16.11.2015 17:49:29
Manuel
Vielen Dank für euren ganzen Hilfen! Der lnglast wurde gewechselt :). Danke ihr alle!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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