Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Durchschnitt berechnen VBA

Durchschnitt berechnen VBA
27.07.2004 07:22:41
Manfred
Guten Morgen zusammen
Ich suche einen Mittelwert/Durchschnitt von den Monaten Januar bis Dezember
Die Werte stehen in D4 bis D15
Sub UseFunction() Dim myRange As Range Set myRange = Worksheets("Zusammenfassung").Range("D4:d15") answer = Application.WorksheetFunction.Average(myRange) MsgBox answer End Sub
Es soll also so sein: Jan = 10 Feb 20
Das Ergebnis sollte dann 15 sein es kommt aber immer 10 raus.
Mein Problem ist dieses Makro aus der Online-hilfe gibt immer den Januar-Wert
aus egal ob ich min, max oder average eintrage?
Gruß
Manfred
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Durchschnitt berechnen VBA
27.07.2004 07:35:25
Heinz
Hallo Manfred,
wenn du tatsächlich 10 und 20 eingetragen hast, kommt auf jeden Fall 15 heraus (getestet ;-)!!).
Vielleicht hast du die Werte in einen anderen Bereich als den im Bezug (D4:D15)geschrieben?
Gruß
Heinz
AW: Durchschnitt berechnen VBA
27.07.2004 07:42:53
Harald
Hallo Manfred,
ich hab's auch versucht, ich erhalte aber das gleiche Ergebnis wie Manfred. Trage ich im VBA Code aber ...Average(10,20) ein, erhalte ich auch 15. Irgendwie scheint das mit dem Range-Objekt nicht zu klappen. VBA greift scheinabr nur auf die erste Zelle des Bereiches zu? Ein Versionsproblem?
Gruß Harald
Anzeige
Sorry, natürlich "Hallo Heinz" o.T.
27.07.2004 07:44:26
Harald
AW: Durchschnitt berechnen VBA
27.07.2004 08:07:18
Heinz
Hallo Harald,
könnte sein, ich hab hier im Büro Excel 2000. Da funktioniert es, wie gesagt.
Gruß
Heinz
AW: funktioniert auch unter Excel97 - oT
FP
.
Anzeige
AW: Durchschnitt berechnen
FP
Hallo Manfred,
warum VBA? Geht doch auch so:
Tabelle2
 ABCD
4Jänner  10
5Februar  20
6März   
7April   
8Mai   
9Juni   
10Juli   
11August   
12September   
13Oktober   
14November   
15Dezember   
16   15
17nur zum Beweis ---------------------------->15
Formeln der Tabelle
D16 : =MITTELWERT(D4:D15)
D17 : =VBA_Mittelwert(D4:D5)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Beweis, dass dies auch per VBA funktioniert:
Option Explicit
Public Function VBA_Mittelwert(Optional Bereich As Range) As Double If Bereich Is Nothing Then Set Bereich = Range("d4:d15") VBA_Mittelwert = WorksheetFunction.Average(Bereich) End Function
Aber wie gesagt: wozu VBA? Ausser man will den Mittelwert des gerade selektierten Bereichs:

Sub Mittelwert_Sel()
MsgBox "Bereich:" & vbTab & vbTab & Selection.Address(0, 0) & vbCr & _
"Mittelwert:" & vbTab & WorksheetFunction.Average(Selection), _
vbOKOnly + vbInformation, _
"Berechnung Mittelwert aus selektiertem Bereich"
End Sub

Servus aus dem Salzkammergut
Franz
Anzeige
Alles geht nach einem boot
Manfred
An alle
Es muß VBA sein, da sonst die USER immer wieder die Formeln aus dem Blatt
löschen!!! Ich habe jetzt meinen Rechner gebootet und das Programm neu
auf gerufen und siehe da ... es funktionier ... doch! Ist manchmal zum
Haare raufen...
boot tut gut
Gruß Manfred
AW: Und wie wär's mit...
FP
Hallo Manfred,
... Bereich (Zellen mit Formel) gegen Veränderung schützen...
a) Eingabebereich markieren - Zellen formatieren - Schutz - Häkchen vor "gesperrt" entfernen
b) Menü "Extras - Schutz - Blatt"
c) Kennwort vergeben ( und merken ;-) )
d) OK
... und niemand ausser Dir kann Formeln aus diesem Blatt löschen !!!
Servus aus dem Salzkammergut
Franz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Durchschnitt berechnen mit VBA in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du den Durchschnitt berechnen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und dann auf Modul.
  4. Kopiere und füge den folgenden Code ein:

    Sub UseFunction()
       Dim myRange As Range
       Set myRange = Worksheets("Zusammenfassung").Range("D4:D15")
       answer = Application.WorksheetFunction.Average(myRange)
       MsgBox answer
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus:

    • Drücke ALT + F8, wähle UseFunction und klicke auf Ausführen.

Das Ergebnis zeigt den Mittelwert der Werte im Bereich D4 bis D15 an.


Häufige Fehler und Lösungen

  • Problem: Das Ergebnis ist immer der Wert der ersten Zelle.

    • Lösung: Überprüfe, ob die Werte im richtigen Bereich (D4:D15) eingegeben sind. Stelle sicher, dass du keine leeren Zellen oder nicht-numerische Werte in diesem Bereich hast.
  • Problem: Der Durchschnitt wird nicht korrekt berechnet.

    • Lösung: Achte darauf, dass der VBA-Code den richtigen Bereich verwendet. Wenn notwendig, passe die Range an.

Alternative Methoden

Wenn du keine VBA verwenden möchtest, kannst du den Durchschnitt auch direkt in Excel berechnen:

  1. Verwende die Funktion MITTELWERT:

    • Gib in eine Zelle die Formel =MITTELWERT(D4:D15) ein, um den Durchschnitt der Werte zu berechnen.
  2. Durchschnitt berechnen online:

    • Es gibt auch zahlreiche Online-Tools, um den Durchschnitt zu berechnen, falls du keine Excel-Software zur Verfügung hast.

Praktische Beispiele

Hier sind einige Szenarien, in denen die VBA-Mittelwert-Berechnung nützlich sein kann:

  • Notendurchschnitt berechnen: Wenn du den Notendurchschnitt für eine Klasse berechnen möchtest, kannst du die Noten in einem bestimmten Bereich eingeben und das VBA-Skript anpassen.

  • Durchschnittliche Zeit berechnen: Wenn du Zeiten in einem bestimmten Format hast, kannst du mit VBA den Durchschnitt dieser Zeiten berechnen.

Sub DurchschnittUhrzeit()
    Dim myRange As Range
    Set myRange = Worksheets("Zeiten").Range("A1:A10")
    answer = Application.WorksheetFunction.Average(myRange)
    MsgBox "Durchschnittliche Zeit: " & Format(answer, "hh:mm")
End Sub

Tipps für Profis

  • Verwende Option Explicit: Diese Zeile am Anfang deines Moduls hilft dir, Variablen zu deklarieren und Fehler beim Programmieren zu minimieren.

  • Schutz von Formeln: Um zu verhindern, dass Benutzer die Formeln löschen, kannst du die Zellen schützen, in denen die Formeln stehen.

  • Testen in verschiedenen Excel-Versionen: Stelle sicher, dass dein VBA-Code in verschiedenen Excel-Versionen getestet wird (z.B. Excel 2000, Excel 2010), um Kompatibilitätsprobleme zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich den Durchschnitt in Excel ohne VBA berechnen?
Du kannst die Funktion =MITTELWERT(D4:D15) direkt in eine Zelle eingeben, um den Durchschnitt zu berechnen.

2. Was mache ich, wenn mein VBA-Code nicht funktioniert?
Überprüfe, ob der Bereich korrekt gesetzt ist und dass keine nicht-numerischen Werte im Range enthalten sind. Du kannst auch den Code debuggen, um mögliche Fehler zu finden.

3. Ist es möglich, den Durchschnitt für nicht zusammenhängende Zellen zu berechnen?
Ja, du kannst mehrere Bereiche in der Average-Funktion angeben, z.B. Application.WorksheetFunction.Average(Range("D4:D5"), Range("D7:D10")).

4. Wie kann ich den VBA-Code anpassen, um andere Bereiche zu verwenden?
Du musst lediglich die Range in der Zeile Set myRange = Worksheets("Zusammenfassung").Range("D4:D15") entsprechend anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige