Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1136to1140
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
Inhaltsverzeichnis

Summenprodukt mit VBA

Summenprodukt mit VBA
Martin
Hallo miteinander
Ich habe in Spalte A und in Spalte B "Nummern" sowie in Spalte C "Beträge". In Spalte D möchte ich nun das Total der "Beträge" eintragen mit Summenprodukt z.B. (A$2:A$1000=A$2)*(B$2:B$1000=B$2)*(C$2:C$1000). Das funktioniert okay.
Nun möchte ich das mit VBA eintragen lassen. Ich das mit dem Rekorder aufgenommen, was mir ein R1C1-Formel ergibt. Leider ist die Liste nicht immer gleich lang, also müsste ich statt A$1000 eine Variable (Rows.Count o.a.) in die Formel einbauen.
Wie schreibe ich eine SUMPRODUCT-Formel in VBA mit Variablen und Range oder Cell anstatt den R1C1?
Ich schnall das leider nicht....
Besten Dank im voraus für jegliche Hilfe.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Summenprodukt mit VBA
05.02.2010 15:49:53
Renee
Hi Martin,
Bei VBA-bescheiden, würde ich davon abraten SUMMENPRODUCT Formeln mit VBA zu erstellen.
Da dies Matrix-Formeln sind, ist das Ganze ziemlich verzwickt.
Bei Excel gut, hingegen müsstest du eigentlich in der Lage sein einen Namen zu definieren, in dem soch der Bereich automatisch anpasst. Siehe z.B. auch unter diesem Beitrag.
GreetZ Renée
AW: Summenprodukt mit VBA
05.02.2010 16:27:42
Martin
Hallo Renée
Danke für die Antwort. Das Ganze wird Teil eines längeren Moduls sein (es fehlt einfach noch das Summenprodukt), daher möchte ich es auch in VBA.......
Besten Dank für Hilfe in VBA
Martin
Anzeige
AW: Summenprodukt mit VBA
05.02.2010 18:29:02
fcs
Hallo Martin,
möchtest du die Summenprodukt-Formel in D2 eintragen, dann sieht der entsprechende VBA-Code wie folgt aus:
Sub aFormel()
Dim wks As Worksheet, ZeileLast As Long, strFormel As String
Set wks = Worksheets("Tab2")
With wks
ZeileLast = .Cells(.Rows.Count, 1).End(xlUp).Row
strFormel = "=SUMPRODUCT((R2C[-3]:R" & ZeileLast & "C[-3]=R2C[-3])*(R2C[-2]:R" _
& ZeileLast & "C[-2]=R2C[-2])*R2C[-1]:R" & ZeileLast & "C[-1])"
'Formel in D2 einfügen
.Cells(2, 4).FormulaR1C1 = strFormel
End With
End Sub

Wichtig zu beachten: Die relativen Bezüge sind bei dieser Schreibweise in [] Klammern und müssen immer relativ zu der Zelle gesehen werden, in die die Formel eingefügt wird.
Gruß
Franz
Anzeige
AW: Summenprodukt mit VBA
06.02.2010 14:44:46
Martin
Hallo Franz
Besten Dank für die Antwort. Das hilft mir schon sehr viel. Ich wusste nicht genau wie ich das "ZeileLast" einbaue, resp. wo die Gänsefüsschen hinkommen etc......
Wie kann ich diese Formel ohne R1C1 sondern mit Range oder Cell schreiben? Ist das überhaupt möglich?
Vielen Dank für die Hilfe
Martin
Sicher! Das wäre ja auch VBA-Standard! Alles...
06.02.2010 16:53:17
Luc:-?
...andere ist nur makrorecorder- bzw MS-typisch, nämlich der permanente Verstoß gg internationale Regeln u.Absprachen für Pgmier-, Abfrage- und Auszeichnungssprachen, Martin...
Du musst das nur den Regeln entsprechend umsetzen. Lies mal in der VBE-Hilfe nach!
Gruß+schöWE, Luc :-?
Anzeige
AW: Sicher! Das wäre ja auch VBA-Standard! Alles...
06.02.2010 18:11:30
Martin
Hab ich natürlich schon probiert, bin aber nicht darauf gekommen......darum mein Frage hier. Dachte mir, dass es sicher jemand gibt, der das in Nullkommanichts kann. Ich bin schon Stunden dran......
Danke
Bist mir etwas 'außer Sicht' geraten,...
08.02.2010 03:57:51
Luc:-?
...Martin,
aber warum willst du das im Standard und damit länger — zum Lernen? Dann ggf so...
"...R2C[-3]:R" & ZeileLast & "C[-3]..." könnte bspw durch "..." & Cells(2, ActiveCell.Column - 3).Address(1, 0) & ":" & Cells(ZeileLast, ActiveCell.Column - 3).Address(1, 0) & "..." ersetzt wdn...
Gruß Luc :-?
AW: Bist mir etwas 'außer Sicht' geraten,...
08.02.2010 08:36:32
Martin
Hallo Luc!
Ja, genau zum Lernen! Besten Dank für die Infos. Ich werde es heute ausprobieren.....
Wünsch dir eine schöne Woche
Martin
Anzeige
Ich dir auch! ;-) owT
08.02.2010 13:31:49
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige