Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1832to1836
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

VBA Summenprodukt

VBA Summenprodukt
26.05.2021 14:57:21
Bo
Hallo zusammen,
ich habe hier in Sheet1 eine monatlich generierte Liste, die von Monat zu Monat eine unterschiedliche Zeilenanzahl ausweist. Ich möchte hier eine Summenprodukt Formel in VBA auf Sheet2 realisieren, die einmal ein Datum ausliest und daraus den Vormonat ermittelt und dann die entsprechende Addition vornimmt. Als Excel Formel sähe das wie folgt aus:

=SUMMENPRODUKT((MONAT(A2:A10000)=MONAT(JETZT()-30))*(AE2:AE10000))
Das funktioniert prima. Damit ich das VBA technisch umgesetzt bekomme habe ich erst die Variable "Letztezeile" definiert (und lasse das Zählen) und dann versucht das in die Formel eine VBA-kompatible Formel zu packen aber ich hänge da fest - diese & und " Geschichte hab ich glaube ich noch nicht richtig verstanden. Mein Versuch sieht wie folgt aus:

Dim Letztezeile As Long
Letztezeile = Range("a"&Rows.Count).End(xlUp).Row
Range("B2").Formula= "=sumproduct((month(Sheet1!a2:a"&Letztezeile&")="=month(now()-30))"*(ae2:ae"&Letztezeile&"))"
Da meckert er und sagt Kompilierungsfehler - kann mir jemand auf die Sprünge helfen?
Danke!

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Summenprodukt
26.05.2021 15:11:38
Werner
Hallo,
was soll den bitte Sheet1 sein? Ist das der Name eines Tabellenblattes? Oder willst du das erste Tabellenblatt ansprechen.
Wenn es der Blattname ist:

"=sumproduct((month(Sheet1!a2:a" & Letztezeile & ")=month(now()-30))*(ae2:ae" & Letztezeile & "))"
Wenn du das erste Blatt ansprechen willst:

"=sumproduct((month(" & Sheets(1).Name & "!a2:a" & Letztezeile & ")=month(now()-30))*(ae2:ae" & Letztezeile & "))"
Gruß Werner
AW: VBA Summenprodukt
26.05.2021 15:16:57
Bo

Hallo,
was soll den bitte Sheet1 sein? Ist das der Name eines Tabellenblattes? Oder willst du das erste Tabellenblatt ansprechen.
Hallo Werner - beides - es ist das erste Tabellenblatt und heisst auch entsprechend. Funktioniert, danke - die Leerzeichen bei den & Geschichten waren das Problem.
Gruss
Boris
Anzeige
AW: VBA Summenprodukt
26.05.2021 15:31:51
Werner
Hallo,
nö, nicht nur.
Dann mach doch mal bei deinem Code die Leerzeichen entsprechend rein. Nach deiner Auffassung müsste das ja dann passen.
Tut es aber nicht. Vergleich deinen Formeltext mal mit meinem.
Gruß Werner
AW: VBA Summenprodukt
27.05.2021 13:03:31
Daniel
Hi
Vor und nach dem "&" muss hier immer ein Leerzeichen stehen.
VBA verwendet das "&" noch für andere Zwecke, um jetzt den Einsatzzweck "Verketten" eindeutig zu beschreiben, sind die Leerzeichen erforderlich und müssen vom Programmierer eingegeben werden.
Ich würde dir empfehlen, die Variablen auf anderem weg in die Formel einzufügen:
Schreibe den Formeltext zunächst in eine Variable.
Verwende anstelle der Variablen einen Dummy-Text, der ansonsten in der Formel nicht vorkommt.
Ersetze dann den Dummytext durch den Variablenwert:

Dim Fo as string
FO = "=sumproduct((month(a2:axxx)=month(now()-30))*(ae2:aexxx))"
FO = Replace(FO, "xxx", Letztezeile)
Range("B2").Formular = FO
Sind zwar ein paar Codezeilen mehr, ist aber viel übersichtlicher, vor allem.bei komplexen Formeln, bei denen die Variable mehrfach benötigt wird.
Gruß Daniel
Anzeige

6 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige