Typen unverträglich und ich verzweifel
02.08.2013 11:14:53
ChrisD
Ich versuche verzweifelt in VBA mit der Sumproduct Funktion mit mehreren variablen Abfragen ein
Ergebnis zu produzieren. Wenn ich nur zwei Abfragen habe, funktioniert es. Baue ich eine _ weitere ein, geht es nicht mehr. Hier mal die beiden Codes im Vergleich :
Private Sub auswertung()
Dim AM1 As String, AM2 As String, G1 As String, G2 As String
'Variable für Comboboxauswahl, Anzahl der Zeilen und der Abfragekriterien
Dim strCo As Variant
Dim lngLZ As Long
Dim para(4) As Variant
'Befüllung der Variablen für die Altersstruktur
With Sheets("RohdatenA")
lngLZ = .UsedRange.Row + .UsedRange.Rows.Count - 1
strCo = Sheets("Ergebnis").ComboBox1
G1 = "männlich"
G2 = "weiblich"
para(0) = .Range("A2:A" & lngLZ).Address(, , , True)
para(1) = .Range("B2:B" & lngLZ).Address(, , , True)
para(2) = .Range("C2:C" & lngLZ).Address(, , , True)
para(3) = .Range("D2:D" & lngLZ).Address(, , , True)
AM2 = Evaluate("SumProduct((" & para(0) & " = """ & strCo & """) * (" & para(2) & " > ""25"" _
_
_
_
_
_
_
_
) * (" & para(3) & " = """ & G1 & """) * (" & para(1) & "))")
MsgBox (AM2)
End With
End Sub
und mit einer Abfrage weniger geht es und ich bekomme nicht mehr den Fehler : Typen unverträ _ glich angezeigt.
Private Sub auswertung()
Dim AM1 As String, AM2 As String, G1 As String, G2 As String
'Variable für Comboboxauswahl, Anzahl der Zeilen und der Abfragekriterien
Dim strCo As Variant
Dim lngLZ As Long
Dim para(4) As Variant
'Befüllung der Variablen für die Altersstruktur
With Sheets("RohdatenA")
lngLZ = .UsedRange.Row + .UsedRange.Rows.Count - 1
strCo = Sheets("Ergebnis").ComboBox1
G1 = "männlich"
G2 = "weiblich"
para(0) = .Range("A2:A" & lngLZ).Address(, , , True)
para(1) = .Range("B2:B" & lngLZ).Address(, , , True)
para(2) = .Range("C2:C" & lngLZ).Address(, , , True)
para(3) = .Range("D2:D" & lngLZ).Address(, , , True)
AM2 = Evaluate("SumProduct((" & para(0) & " = """ & strCo & """) * (" & para(3) & " = """ & _
_
_
_
_
_
_
_
G1 & """) * (" & para(1) & "))")
MsgBox (AM2)
End With
End Sub
Nun wird die für die richtige Antwort als MsgBox ausgegeben.
In der Tabelle habe ich 4 Spalten :
A = Firmen, B= Anzahl Köpfe (immer1), C=Alter, D=Geschlecht
Kann mir bitte jemand helfen. Ich verweifel nämlich langsam.
Liebe Grüße
Chris