Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: Apfelbaum1 am Januar 30, 2015, 16:36:25 Nachmittag

Titel: Excel VBA: Summe über Funktion in mehreren Tabellenblättern unabhängig berechnen
Beitrag von: Apfelbaum1 am Januar 30, 2015, 16:36:25 Nachmittag
Hallo Community,

ich habe ein Problem. Für viele von euch wahrscheinlich sehr trivial, aber ich stehe gerade echt auf dem "Schlauch"

Ich möchte in mehreren Worksheets eine Funktion in eine Zelle schreiben, von der aus dann nach rechts Summiert wird.
Die Summe wird nur aus jedem 5. Wert gebildet
Function lauf1(spalte As Integer)
Application.Volatile
Dim lauf As Double
Dim i As Integer
lauf = 0
Dim orng As Range
Set orng = Application.Caller
For i = spalte To 500 Step 5
lauf = lauf + ActiveSheet.Cells(orng.Row, i + 5).Value
Next i
lauf1 = lauf
End Function
Das funktioniert auch wunderbar, nur werden die Ergebnisse des aktuellen Worksheets in alle anderen übertragen. d.h. ich muss beim Worksheetwechsel alles neu berechnen (UMSCHALT+F9) was zum Teil sehr lange dauert. Und eine Änderung einer Zelle im active Sheet bewirkt eine mappenweite Neuberechnung, was noch länger dauert und mich dazu zwingt bei erneutem Sheetwechsel wieder alles von vorne zu berechnen.

Meine Frage:
Wie kann ich der Funktion sagen, dass nur Werte im aktiven Sheet berechnet werden sollen und mit den anderen Sheets nichts geschieht, bis ich wieder darauf zugreife und Änderungen vornehme?

Vielen Dank und ein schönes Wochende

Gruß

PS: etwaige Verwirrung wegens des Codes bitte ignorieren (bspw i+5 in der Schleife diente mir bei der Anapssung an bestimmte Worksheets)
Titel: Antw: Excel VBA: Summe über Funktion in mehreren Tabellenblättern unabhängig berechnen
Beitrag von: maninweb am Januar 30, 2015, 16:48:37 Nachmittag
Hallo,

wenn ich's richtig erfasst habe, könntest auch eine Formel statt einer VBA-Funktion verwenden,
dürfte erheblich schneller sein, ein Beispiel für 1 Zeile, alle 5 Spalten:

=SUMMENPRODUKT((REST(SPALTE(B3:K3);5)=0)*(B3:K3))

Gruß
Titel: Summe über Funktion in mehreren Tabellenblättern unabhängig berechnen
Beitrag von: Apfelbaum1 am Februar 02, 2015, 07:42:17 Vormittag
Hallo,

die Formel sieht ganz gut aus, jedoch soll die Excel-Datei von Kollegen benutzt werden, die keinerlei Excel-Kenntnis haben und daher die Syntax von Formeln nicht verstehen.

In meinem ode müssen sie nur die Spaltenzahl angeben und dann geht alles von alleine.

Trotzdem danke, für den ansich guten Vorschlag!

Grüße

Ergänzend:

Hallo nochmal, ich sitze da jetzt gerade nochmals davor und komme einfach nicht drauf wieso diese Funktion auf allen Blättern das Ergebnis des aktuellen Worksheets anzeigt. Das wäre doch so als würde ich die Summenfunktion in mehreren Blättern verwende, aber sie zeigt mir in jeder Zeller nur die Ergebnisse aus dem zuletzt aufgerufenen Blatt. Das macht für mich irgendwie keinen Sinn....
Titel: LÖSUNG
Beitrag von: Apfelbaum1 am Februar 02, 2015, 11:35:30 Vormittag
Hallo, ich habe das Problem jetzt gelöst und werde hier kurz meine Erkenntnis mitteilen:

Das Problem war, dass die Funktion über alle Worksheets hinweg referenziert hat und die Ergebnisse des aktuellen Worksheets nicht übernommen wurden sondern separat in allen anderen mitberechnet.
Abhilfe schafft eine relative Positionsangabe mittels Offset-Befehl.
In meinem Fall war das
Application.Caller.Offset(0, i).Value
Beste Grüße