Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
924to928
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
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sumif(indirect mit variablem Tabellename

Sumif(indirect mit variablem Tabellename
15.11.2007 17:24:19
Guillaume
Hallo,
ich habe von dem Forum den Formel mit Summe(summewenn(indirekt({.... kopiert, versuche dies in VBA umzusetzen und leider schaffe ich es nicht die Blättername durch Variable zu ändern.
Wer kann mir helfen bitte?
Als Besipiel:
In der Tabelle 1 will ich die Zellen c3:c4 von den Blättern "Blatt1" und "Blatt2" addieren, vorausgesetzt dass diese Zellen B3:B4 eine bestimmte Referenz (in diesem Fall "30010") enthalten.
In Excel sieht der Formel so aus:
=SUMME(SUMMEWENN(INDIREKT({"Blatt1"."Blatt2"}&"!b$3:b$4");30010; INDIREKT({"Blatt1"."Blatt2"}&"!c3:c4")))
Es funktioniert in Excel fein, in VBA sieht es so aus:
Range("b3").Select
ActiveCell.Formula = _
"=SUM(SUMIF(INDIRECT({""Blatt1"" " _
& ",""Blatt2""}&""!b$3:b$4"")," _
& Range("a3") & ",INDIRECT({""Blatt1"",""Blatt2""}&""!c3:c4"")))"
Da funktioniert es auch fein. Aber ich möchte den Formel umschreiben, so dass ich "Blatt1" durch einen Namen ersetzt sein kann (es werden mehreren Blätter addiert, abhängig von Endusern und der Formel soll diese neue Blätter auch addieren, deswegen frage ich vorher Excel, alle Blätter zu identifizieren).
Wenn ich vorher z.B. festlege Bp1 = "Blatt1", gelingt es mir nicht, diese Bp1 in dem Formel zu übernehmen.
Ich hoffe, daß meine Beschreibung einigermaße verständlich war :-)
MfG
Guillaume

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sumif(indirect mit variablem Tabellename
17.11.2007 18:29:21
fcs
Hallo Guilaume,
der Code zum erzeugen der Formel mit Variablen für die Blattnamen schaut so aus:

Sub test()
Dim Blatt1 As String, Blatt2 As String
Range("b3").Select
Blatt1 = "Tabelle 2"
Blatt2 = "Tabelle 3"
ActiveCell.Formula = "=SUM(SUMIF(INDIRECT({""'" & Blatt1 & """ " _
& ",""'" & Blatt2 & """}&""'!b$3:b$4"")," _
& Range("a3") & ",INDIRECT({""'" & Blatt1 & """,""'" & Blatt2 & """}&""'!c3:c4"")))"
End Sub


Die zusätzlichen Kochkommata (') in der Formel sind erforderlich, damit Blattnamen mit Sonderzeichen (z.B. Leerzeichen) korrekt verarbeitet werden.
Gruß
Franz

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige