Aus meiner "urspuenglichen" Forumsfrage (unten mit meiner Loesung) hat sich eine zweite Frage abgeleitet:
Weiss jemand ob man den Kriteriumparameter "Arg3" als Array uebergeben kann, wenn die DSUM in VBA benutzt wird:
Application.WorksheetFunction.DSum(Arg1, Arg2, Arg3)
Das ist ja mal ein richtiger Nussknacker gegenueber der ersten Frage....
Schoenes Wochenende,
Axel
*****Hier die Loesung zur urspuenglichen Frage, Wie man die DSUM() Formel wesentlich flexibler gestatlten kann bei multi-dimensionalen abfragen*******
Hier die Antwort / Loesung fuer die die es interessiert in diesem Forum.....
Wie schon ueber den Microsoftartikel angegeben, akzeptiert DSUM() eine Formel als Kriterium, wenn die Formel einen Boolean returnvalue gibt ("True" oder "False").
Dies geht zum Beispiel mit the EXACT() Formel. Da ich nach der suche einer Art "InListe" order "InText" formel war und es diese nicht mit "boolean return" gibt, habe ich die einfach mal als UDF (User defined Function) definiert und in meine DSUM() als Kriterium eingespeist.... PROSIT es klappt!
Somit kann man der DSUM() Formel ein sehr flexibles "oder" Kriterium einspeisen, insbesondere wenn man mehrere Dimension abfragt.
Ich finde das im Prinzip schon "sensationel", nur leider verliert unsere gute alte DSUM() an der ueblichen Performance.....
'*********************************************************
Function InSlashString(DBStartCell As String, SlashList As String) As Boolean
If (SlashList Like "*/" & DBStartCell & "/*") Then InSlashString = True Else InSlashString = False
End Function
Function InList(DBStartCell As String, CompareList As Range) As Boolean
Set MyRange = CompareList
InList = False
For Each cell In CompareList.Cells
If (DBStartCell Like cell) Then
InList = True
Exit Function
End If
Next
End Function
'************************************
Ich habe ein Beispiel als XLS datei angefuegt:
https://www.herber.de/bbs/user/40307.xls
Dies ist zwar die Loesung zu meiner urspuenglichen Frage, nur da die Performance zu wuenschen uebrig laesst, muss es da doch noch etwas anderes geben (ausser diesen crazy shift+ctrl+enter array Formeln)?
Schoenes Wochenende,
Axel