Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1456to1460
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
Inhaltsverzeichnis

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

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

...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

Anzeige
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

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!

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige