AW: Sverweis oder VBA Bautext?
03.04.2006 20:55:34
Daniel
Hallo
ich habe mal eine kleine Funktion gebastelt, die wie Summewenn funktioniert, aber noch eine Datumseinschränkung zulässt.
Das heißt, du mußt nach den Üblichen Feldern
- Suchbereich, Suchkriterum und Summenbereich noch die Werte für
- Datumsbereich, DatumVon und DatumBis angeben
Die Funktion erreichst du in der Beispieldatei über
Einfügen - Funktionen - Benutzerdefiniert - SummeWennDatum
Die Bereiche für Kriterienbereich, Summenbereich und Datumsbereich müssen:
- einspaltig sein
- in der gleichen Reihe beginnen und in der gleichen Reihe aufhören
DatumVon und DatumBis müssen Datumswerte enthalten, DatumBis muß größer sein als DatumVon
Der Vergleich erfolgt Sekundengenau, dh. wenn du die Datumswerte ohne Zeitangabe eingibst solltest du bei DatumBis einen Tag hinzuzählen.
Hier die Datei mit der Funktion, die Zellverweise mußt du natürlich nochmal eingeben.
https://www.herber.de/bbs/user/32575.xls
Hier der Makrotext:
Public
Function SummeWennDatum(Kriterenbereich As Range, Kriterium As Variant, Summenbereich As Range, Datumsbereich As Range, DatumVon As Date, DatumBis As Date) As Double
Dim KritBer, SumBer, DatBer
Dim i As Long
Dim Summe As Double
KritBer = Kriterenbereich.Value
SumBer = Summenbereich.Value
DatBer = Datumsbereich.Value
If Kriterenbereich.Row <> Summenbereich.Row And Summenbereich.Row <> Datumsbereich.Row Then GoTo Fehler
If UBound(KritBer, 1) <> UBound(SumBer, 1) And UBound(SumBer, 1) <> UBound(DatBer, 1) Then GoTo Fehler
If UBound(KritBer, 2) <> 1 Or UBound(SumBer, 2) <> 1 Or UBound(DatBer, 2) <> 1 Then GoTo Fehler
For i = 1 To UBound(KritBer, 1)
If KritBer(i, 1) = Kriterium And DatBer(i, 1) <= DatumBis And DatBer(i, 1) >= DatumVon And IsNumeric(SumBer(i, 1)) Then
Summe = Summe + SumBer(i, 1)
End If
Next
SummeWennDatum = Summe
Exit Function
Fehler:
SummeWennDatum = "xxx"
End
Function
Gruß, Daniel Eisert