Microsoft Excel

Herbers Excel/VBA-Archiv

Summenprodukt Formel mit VBA

Betrifft: Summenprodukt Formel mit VBA von: Dieter(Drummer)
Geschrieben am: 16.11.2012 20:40:23

Hi VBA Spezialisten,

ich habe von aus diesem Forum von Chrsitian diese Formel, die prima funktioniert, erhalten:

=SUMMENPRODUKT((VERGLEICH(B20:B69&C20:C69&D20:D69&E20:E69&F20:F69&G20:G69&H20:H69&I20:I69; B20:B69&C20:C69&D20:D69&E20:E69&F20:F69&G20:G69&H20:H69&I20:I69;0)=ZEILE(1:50))*(B20:B69<>"") *(C20:C69<>"")*(D20:D69<>"")*(E20:E69<>"")*(F20:F69<>"")*(G20:G69<>"")*(H20:H69<>"")*(I20:I69<>"")) 
Ich habe versucht diese Formel manuell in Zell C3 einzugeben und dabei eine Makroaufzeichnung laufen lassen. Die Formeleingane war nicht möglich aufzuzeichnen.

Wie bekomme ich diese Formel in VBA eingesetzt, sodass ich per VBA diese in die Zelle C3 der aktiven Tabelle einfügen kann?

Danke für evtl. Hilfe.

Gruß,Dieter(Drummer)

  

Betrifft: AW: Summenprodukt Formel mit VBA von: Matthias L
Geschrieben am: 16.11.2012 21:12:07

Hallo Dieter

Range("C3").FormulaLocal = "=SUMMENPRODUKT((VERGLEICH(B20:B69&C20:C69&D20:D69&E20:E69&F20:F69&G20:G69&H20:H69&I20:I69; B20:B69&C20:C69&D20:D69&E20:E69&F20:F69&G20:G69&H20:H69&I20:I69;0)=ZEILE(1:50))*(B20:B69<>"") *(C20:C69<>"")*(D20:D69<>"")*(E20:E69<>"")*(F20:F69<>"")*(G20:G69<>"")*(H20:H69<>"")*(I20:I69<>"")) "

Gruß Matthias


  

Betrifft: AW: Danke Matthias! Perfekt ... von: Dieter(Drummer)
Geschrieben am: 16.11.2012 21:20:21

... und funktioniert prima!

Herzlichen Dank und einen angenehmen Abend.

Gruß, Dieter(Drummer)


  

Betrifft: nicht perfekt :-( von: Erich G.
Geschrieben am: 17.11.2012 08:38:29

Hi Dieter und Matthias,
fehlen da nicht ein paar Gänsefüße?

Vergleicht mal:

Sub aaaa()
Range("C3").FormulaLocal = "=SUMMENPRODUKT((VERGLEICH(" _
   & "B20:B69&C20:C69&D20:D69&E20:E69&F20:F69&G20:G69&H20:H69&I20:I69;" _
   & "B20:B69&C20:C69&D20:D69&E20:E69&F20:F69&G20:G69&H20:H69&I20:I69;0)" _
   & "=ZEILE(1:50))*(B20:B69<>"") *(C20:C69<>"")*(D20:D69<>"")*(E20:E69<>"")" _
   & "*(F20:F69<>"")*(G20:G69<>"")*(H20:H69<>"")*(I20:I69<>""))"

Range("C4").FormulaLocal = "=SUMMENPRODUKT((VERGLEICH(" _
   & "B20:B69&C20:C69&D20:D69&E20:E69&F20:F69&G20:G69&H20:H69&I20:I69;" _
   & "B20:B69&C20:C69&D20:D69&E20:E69&F20:F69&G20:G69&H20:H69&I20:I69;0)" _
   & "=ZEILE(1:50))*(B20:B69<>"""") *(C20:C69<>"""")*(D20:D69<>"""")*(E20:E69<>"""")" _
   & "*(F20:F69<>"""")*(G20:G69<>"""")*(H20:H69<>"""")*(I20:I69<>""""))"
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

P.S.: So kann man im Code und auch hier im Forum lange Zeichenketten besser darstellen.


  

Betrifft: AW: Danke Erich ... von: Dieter(Drummer)
Geschrieben am: 17.11.2012 09:36:45

... deine Formel für C4 funktioniert einwandfrei! Bei der Formel von Matthias fehlt beim Einfügen in C3 tatsächlich von zwei "" ein Anführungszeichen. hatte ich nicht bemerkt. Nun geht es ohne Fehler.

Dennoch meinen herzlichen Dank an Matthias und dich für die Hilfe und deine nun perfekte Lösung.

Gruß, Dieter(Drummer)


  

Betrifft: da hätt ich mal die Formel bessser lesen sollen von: Matthias L
Geschrieben am: 17.11.2012 17:34:26

Hallo Erich

Ich hatt die Formel nur kopiert und dann eben wieder eingefügt.
Da hätte ich wohl doch besser mal drüberschauen müssen.
Danke Erich das Du das getan hast. Ich gelobe Besserung.

Gruß Matthias


  

Betrifft: AW: Dadurch habe ich etwas gelernt ... von: Dieter(Drummer)
Geschrieben am: 17.11.2012 17:50:28

... in dem ich mich mit "FormularLocal" auseinader gesetzt habe. Hatte noch eine 2. Formel, die ich tatsächlich allein in VBA durch eure Hilfe hinbekommen habe. Danke an euch Beide und ein schönes Wochende.

Gruß, Dieter(Drummer)


  

Betrifft: ebenfalls schöWE ;o) oT von: Matthias L
Geschrieben am: 17.11.2012 19:26:00




 

Beiträge aus den Excel-Beispielen zum Thema "Summenprodukt Formel mit VBA"