Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

harald e

harald e
17.10.2005 08:49:45
Harald
Guten Morgen Forum,
bin mal wieder mit dem Latein am Ende.
Peinlicherweise scheitere ich gerade an der vba-Syntax für ein ganz normales Summenprodukt.
Die Datei wird aus einer Oracle Datenbank generiert und hat über 30000 Zeilen.
Das Ganze auf einer englischen Excel-Verison. Daher greife ich lieber auf vba zurück.
Es handelt sich um eine Ergebnis-Datenbank von Verschraubungen, die nach Schraubernummer und Anzahl der Fehlverschraubungen gelistet werden muss.
In Tabelle 1 steht in Spalte F die Schraubernummer (1, 2, etc), in Spalte I steht das Ergebnis als "IO" oder "NIO"
In Tabelle 2 habe ich die Schrauber in Spalte A gelistet und benötige nun per vba die Anzahl der "NIO" pro Schrauber.
Eigentlich total simpel, aber trotz Recherche und Excel-CD sind meine bereits über 20 Versuche alle in der SumProduct-Zeile gelb hinterlegt....so auch dieser.

Sub auswertung()
Dim i As Integer
Dim wks As Worksheet, wkasA As Worksheet
Set wks = Worksheets("Tabelle1")
Set wksA = Worksheets("Tabelle2")
Bletzte = wksA.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To Bletzte
wksA.Range("B" & i) = WorksheetFunction.SumProduct((wks.Columns(6) = wksA.Range("a" & i)) * (wks.Columns(9) = "NIO"))
Next i
End Sub

Kann mir bitte jemand die korrekte Syntax verraten.
Danke und Gruß
Harald

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Summenprodukt per vba
17.10.2005 08:51:29
Harald
...sollte eigentlich im Betreff des ersten Beitrags stehen
...grrr. Ich hasse Montage.
AW: Summenprodukt per vba
17.10.2005 11:40:27
GerdZ
Hallo Harald,
in Excel 2000 kann WorksheetFunction.SumProduct auf diese Weise nicht benutzt werden. Vermutlich ist es bei Excel 2003 genauso.
Die Funktion verträgt nicht die ganze Spalte und als WorksheetFunction.SumProduct im VBA keine Vergleiche.
Hier kann man sich aber über die Evaluate-Funktion behelfen.
z.B:
wksA.Range("B" & i) = Evaluate("=SumProduct((Tabelle1!F1:F65535 = Tabelle2!a" & i & ") * (Tabelle1!I1:I65535 = ""NIO""))")
Gruß Gerd
Anzeige
Das funzt !! Danke m.T
17.10.2005 12:03:35
Harald
Hallo Gerd,
das hilft ja richtig gut hier.
Der Code läuft auch wesentlich schneller (8 Sekunden) als eine verschachtelte If...and... Schleife, die ich notgedrungen mal angetestet hab (3 Minuten).
Vielen Dank nochmal
Harald

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige