AW: Excel berechnet falsch (automatisch)
24.06.2004 15:47:15
Tino
Hier meine Funktion:
aufruf in Zelle mit =Summe_oder_Max(....)
Function Summe_oder_Max(Suchkriterium As String, Suchmatrix As Range, Saldenspalte As Integer, Summierenspalte As Integer, Maximalspalte As Integer) As Double
'wenn in summierenspalte wert, dann suchen, ob wert mehrmals vorkommt und addieren der werte
'wenn in maximalspalte wert, dann suchen, ob wert mehrmals vorkommt und maximalwert bestimmen
Dim zaehler As Long
Dim maxwert As Double, summenwert As Double
Dim komplett As Range, finden As Range
Dim zeilentemp As Long, abbruch As Boolean
Dim evalue As String
evalue = ""
maxwert = 0
summenwert = 0
Set finden = Suchmatrix.Columns(Summierenspalte).Find(Suchkriterium, LookIn:=xlValues, lookat:=xlWhole)
If finden Is Nothing Then
GoTo maximalwert
Else
zeilentemp = finden.Row
summenwert = CDbl(Cells(zeilentemp, Saldenspalte).Value)
Do
zeilentemp = zeilentemp + 1
If Cells(zeilentemp, Summierenspalte).Value = Suchkriterium Then
summenwert = summenwert + CDbl(Cells(zeilentemp, Saldenspalte).Value)
End If
Loop Until zeilentemp > ActiveSheet.UsedRange.Rows.Count
End If
evalue = "summe"
GoTo Ende
maximalwert:
Set finden = Suchmatrix.Columns(Maximalspalte).Find(Suchkriterium, LookIn:=xlValues, lookat:=xlWhole)
If finden Is Nothing Then
GoTo Ende
Else
zeilentemp = finden.Row
maxwert = CDbl(Cells(zeilentemp, Saldenspalte).Value)
Do
zeilentemp = zeilentemp + 1
If Cells(zeilentemp, Maximalspalte).Value = Suchkriterium Then
If maxwert < CDbl(Cells(zeilentemp, Saldenspalte).Value) Then
maxwert = Cells(zeilentemp, Saldenspalte).Value
End If
End If
Loop Until zeilentemp > ActiveSheet.UsedRange.Rows.Count
End If
evalue = "max"
Ende:
Select Case evalue
Case "summe"
If summenwert > 0 Then
Summe_oder_Max = summenwert
Else
Summe_oder_Max = 0
End If
Case "max"
Summe_oder_Max = maxwert
Case Else
Summe_oder_Max = 0
End Select
End Function