Clever-Excel-Forum

Normale Version: Formel - Bezug auf aktuelles Datenblatt nehmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Liebe Mitglieder

Ich habe eine Präsenzliste für unsere Klasse erstellt. Pro Schulwoche habe ich ein Tabellenblatt (W01-W52).

Nun möchte ich Daten aller Tabellenblätter bis zum aktuellem Tabellenblatt zusammenrechnen. Die funktionierende Formel ist:

=1/(SUMME('W34:W35'!$AM15)/6)*((SUMME('W34:W35'!$AM15)/6)-(SUMME(S33:V33)))

W35 sollte nicht statisch sein, sondern mit jedem weiteren Tabellenblatt automatisch auf das jeweilige angleichen.

Habt ihr eine Lösung für mich?

Gruss Thomas
Hallo,

ohne es selbst ausprobiert zu haben:

Erstelle ein neues, leeres Tabellenblatt und benenne das als 'Stop' und ziehe das Tabellenblatt direkt hinter das Tabelleblatt W35. Ersetze in deiner Formel das W35 durch Stop und ziehe dann einfach jede Woche das nächste Tabellenblatt vor das Tabellenblatt Stop.
Die Lösung von Peter ist genau richtig und simpel umzusetzen!

Und es wäre nett, wenn du diesmal eine Rückmeldung auf die Antwort geben würdest :)
Danke Peter für deinen Lösungsvorschlag. So wie ich den Fall geschildert habe ist diese Lösung simpel und funktioniert. Doch habe ich mich missverständlich ausgedrückt oder zu wenig Infos geliefert.

- Das File existiert komplett (52 Tabellenblätter mit je einer Woche). Diese wird von meinen Kollegen gepflegt, die noch weniger Ahnung von Excel haben als ich. Excel sollte auch gegen Ende des Schuljahres die vergangen Wochen korrekt berechnen. Dies gelingt nicht, wenn das STOP-Blatt jede Woche nach hinten rückt.

Gibt es eine Möglichkeit, dass ich der Formel klarmachen kann, dass sie immer bis zum aktuellen Datenblatt rechnet. Ich las, etwas von intelligenten Formeln mit eckigen Klammern des aktuellen Datenblattes. Nur funktionieren alle meine Versuche nicht. Ich habe zusätzliche Formeln einfügen müssen und sollte eben diese auf die Präsenzlisten für sechs Klssen fertigen. Von Hand ein riesen Aufwand.

Danke MisterBurns für deinen Hinweis und danke, dass du mir trotz meines nicht sehr anständigen Verhaltens noch schreibst.

Gruss an euch
Thomas
Hallöchen,

Peter's Antwort lautete:

Zitat:Erstelle ein neues, leeres Tabellenblatt und benenne das als 'Stop' und ziehe das Tabellenblatt direkt hinter das LETZTE Tabelleblatt 

... er hat das Wort ... LETZTE  zu schreiben vergessen.
Hallo,

Zitat:er hat das Wort ... LETZTE zu schreiben vergessen.


Eigentlich nicht, ich war der Meinung, dass

Zitat:und ziehe das Tabellenblatt direkt hinter das Tabelleblatt W35. Ersetze in deiner Formel das W35 durch Stop und ziehe dann einfach jede Woche das nächste Tabellenblatt vor das Tabellenblatt Stop.


das Vorgehen richtig beschreibt.

Aber anscheinend war das nicht klar genug ausgedrückt.

Zitat: Dies gelingt nicht, wenn das STOP-Blatt jede Woche nach hinten rückt.


und warum nicht?

Hier eine kleine Beispielsdatei. Vielleicht habe ich die Vorgehensweise nicht verständlich beschrieben.

In der Beispielsdatei steht in jedem Tabellenblatt der Wert 1 in A1. im Tabellenblatt Stop steht zuätlzich die Formel =SUMME(Tabelle1:Stop!A1) in C1.

Die Position des Tabellenblattes Stop gibt an welche Tabellenblätter in die Summenformel mit einbezogen werden.
Ich würde sogar noch einen Schritt weiter gehen als Peter. Das Blatt "Stop" kann ja auch leer bleiben und ausgeblendet werden. Es ist dann nur als unsichtbarer Helfer da. Mit diesem Code im Modul DieseArbeitsmappe wird das Blatt immer automatisch an die Position hinter dem aktiven Tabellenblatt verschoben. Somit ist die Berechnung in jedem Blatt korrekt und der Anwender muss nichts weiter dafür tun.

Code:
Private WithEvents appMyXL As Application

Private Sub Workbook_Open()
   Set appMyXL = Application
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Set appMyXL = Nothing
End Sub

Private Sub appMyXL_SheetActivate(ByVal Sh As Object)
 Sheets("Stop").Move After:=ActiveSheet
End Sub
Vielen Dank euch allen für die Lösung meiner Herausforderung.