Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
380to384
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
380to384
380to384
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

WorksheetFunction.SumProduct

WorksheetFunction.SumProduct
12.02.2004 21:14:47
Christoph
Hallo bestes Forum,
Ich habe ein Problem mit einer "WorksheetFunction" und komm einfach nicht auf den Fehler.
In der Tabelle "2948_Erfassung" steht im Bereich P2:P1743 jeweils ein Datum.
In der Tabelle "Anzahl_pro_Monat" steht in Spalte C die "Nummer" des Monats also 1 für Januar, 2 für Februar, ...) und in Spalte D das Jahr (1999, 1999, und 12 Zeilen weiter dann 2000, ...).In Tabelle "Anzahl_pro_Monat", Spalte E soll die Anzahl der Einträge aus Tabelle "2948_Erfassung" ausgegeben werden, deren Datum mit den Einträgen in Spalte C und D in Tabelle "Anzahl_pro_Monat" übereinstimmt.
Per Formel z.B. in E3 funktioniert das auch fehlerfrei:
=SUMMENPRODUKT((MONAT('2948_Erfassung'!$P$2:$P$1743)=C3)*(JAHR('2948_Erfassung'!$P$2:$P$1743)=D3))
Ich möchte jedoch nicht die Funktion in der Zelle sondern den berechneten Wert in der jeweiligen Zeile haben.
Ich habe dies mit folgendem Makro versucht:

Sub Formel()
Dim wks1 As Worksheet
Dim wks2 As Worksheet
Set wks1 = ThisWorkbook.Worksheets("Anzahl_pro_Monat")
Set wks2 = ThisWorkbook.Worksheets("2948_Erfassung")
wks1.Range("E3").Value = Application.WorksheetFunction.SumProduct((Month(wks2.Range("P2:P1743") = wks1.Range("C3")) * (Year(wks2.Range("P2:P1743")) = wks1.Range("D3"))))
End Sub

bekomme aber die Fehlermeldung: "Typen unverträglich".
Wo liegt der verdammte Fehler?
PS: ich arbeite zur Zeit unter OfficeXP, das Makro soll aber auch auf einem Rechner mit Office97 laufen.
bin für jede Hilfe dankbar
viele Grüsse
Christoph

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: WorksheetFunction.SumProduct
12.02.2004 22:00:23
andre
hallo christoph,
erst mal ein ansatz:

Sub test()
MsgBox [SumProduct((a1:a3 = c1)* (a1:a3)*(b1:b3))]
End Sub

gruss andre
noch keine Lösung gefunden
12.02.2004 23:48:09
Christoph
Hallo Andre,
vielen deinen Dank erst mal.
Dein Tipp hat mich zumindest dazu gebracht, das Teil in Einzelschritten
zu analysieren. Leider Ohne Erfolg. Denn wie es aussieht, hängt sich die
"WorksheetFunction" genau dann auf, wenn sie "Month" verarbeiten soll.
als einfacheres Beispiel:
Range("E3").Value = WorksheetFunction.Sum(Worksheets("Tabelle1").Range("P2:P3"))
funktioniert.
aber:
Range("E3").Value = WorksheetFunction.Sum(Month(Worksheets("Tabelle1").Range("P2:P3")))
führt zu der besagten Fehlermeldung.
In beiden Fällen steht in "P2:P3" ein Datum.
Das erstere Ergebnis hilft mir allerdings nicht weiter, da ich wenig Lust habe
den Zahlenwert z.B. vom 29.04.1999 (=36279) wieder in Monat und Jahr aufzusplitten.
vielleicht kennst du ja noch einen Trick...?
Gruß
Christoph

Anzeige
AW: noch keine Lösung gefunden
13.02.2004 00:11:29
Bert
Lad doch mal was hoch, das bastelt sich doch niemand nach.
Bert
es gibt kein "Month" bei "WorksheetFunction"
13.02.2004 11:45:04
Christoph
Hi Bert,
insofern hat sich dieses Thema erledigt.
Ich werde also per Makro die Funktion einfügen und anschließend die Werte "drüberkopieren"
viele Grüsse
Christoph

187 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige