Thema Datum  Von Nutzer Rating
Antwort
Rot Benutzerdefinierte Funktion "Mittel"
17.08.2021 12:18:29 Alexander
NotSolved
17.08.2021 13:32:35 Gast86125
NotSolved
17.08.2021 14:11:11 Alexander
NotSolved
17.08.2021 14:38:35 Alexqander
NotSolved
17.08.2021 19:14:54 Gast22906
NotSolved
19.08.2021 10:18:57 Alexander
NotSolved
19.08.2021 22:46:16 Gast32926
NotSolved

Ansicht des Beitrags:
Von:
Alexander
Datum:
17.08.2021 12:18:29
Views:
300
Rating: Antwort:
  Ja
Thema:
Benutzerdefinierte Funktion "Mittel"

Guten Tag,

ich hänge leider mal wieder bei einer Aufgabe und finde den Fehler nicht.

Es soll eine Funktion erstellt werden, die als erstes Argument einen booleschen Wert annimmt (der bestimmt, ob nur positive oder alle Zahlen betrachtet werden sollen) und des Weiteren den Mittelwert aller markierten Zahlen berechnen soll. Dabei zählen nur numerische Werte. Zellen in denen nichts eingetragen ist sollen nicht mitgezählt werden.

Nun habe ich folgenden Code (und bekomme nur Ergebnisse für einzelne Argumente oder mehrere Argumente, die ich händisch eingebe. Markiere ich Zellenbereiche ist der Wert "#Wert"):

Option Explicit

Public Function Mittel(NurPosZahlen As Boolean, ParamArray AlleArgumente() As Variant) As Double

Dim Argument As Variant
Dim Zelle As Range
Dim Summe, Anzahl As Double

For Each Argument In AlleArgumente
    If NurPosZahlen = True Then
        If IsNumeric(Argument) And Argument >= 0 And Argument <> "" Then
            Summe = Summe + Argument
            Anzahl = Anzahl + 1
        ElseIf TypeName(Argument) = "Range" Then
            For Each Zelle In Argument
                If IsNumeric(Zelle.Value) And Zelle.Value >= 0 And Zelle.Value <> "" Then
                    Summe = Summe + Zelle.Value
                    Anzahl = Anzahl + 1
                End If
            Next
        End If
    ElseIf NurPosZahlen = False Then
        If IsNumeric(Argument) And Argument <> "" Then
            Summe = Summe + Argument
            Anzahl = Anzahl + 1
        ElseIf TypeName(Argument) = "Range" Then
            For Each Zelle In Argument
                If IsNumeric(Zelle.Value) And Zelle.Value <> "" Then
                    Summe = Summe + Zelle.Value
                    Anzahl = Anzahl + 1
                End If
            Next
        End If
    End If
Next

If Anzahl > 0 Then
    Mittel = Summe / Anzahl
Else
    Mittel = 0
End If

End Function

Wo steckt der Fehler?


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Benutzerdefinierte Funktion "Mittel"
17.08.2021 12:18:29 Alexander
NotSolved
17.08.2021 13:32:35 Gast86125
NotSolved
17.08.2021 14:11:11 Alexander
NotSolved
17.08.2021 14:38:35 Alexqander
NotSolved
17.08.2021 19:14:54 Gast22906
NotSolved
19.08.2021 10:18:57 Alexander
NotSolved
19.08.2021 22:46:16 Gast32926
NotSolved