Excel - Wert aus VORHERIGEM Tabellenblatt übernehmen

Salmonelle

Lieutenant
Registriert
Aug. 2007
Beiträge
892
Hallo Leute,
ich habe die folgende Frage: wie kann ich bei Excel einstellen, dass ein Wert aus dem Tabellenblatt genommen wird, was GENAU vor dem jetzigen Tabellenblatt steht?

Ich habe eine Datei mit Jahresbillanzen und möchte die neuen Billanzen mit den alten des Vorjahres vergleichen (z.B. Soll in "Billanz 2019 Zelle I8" der wert von "Billanz 2018 Zelle G8" stehen). Somit brauche ich in den "Vergleichszellen" immer nur die der vorherigen Tabelle. Das soll am besten automatisch gemacht werden, wenn ich zum Beispiel eine Tabelle lösche oder kopiere.

Per Hand geht das natürlich recht einfach: immer wieder mit "=" und dann den Wert in der entsprechenden Tabelle anklicken.
Die einzelnen Reiter heißen Billanz 2018, Billanz 2019, Billanz 2020 und so weiter.

Hat einer eine Idee? Bitte für einen Laien erklärt.

Vielen Lieben Dank für eure Hilfe.

Gruß, Daniel


P.S.: Habe schon viel im Netz gesucht und bin auch z.B. auf "INDIREKT" gestoßen, aber ich habe es einfach nicht hinbekommen.
 
Vielen Dank schonmal!

Werde ich mir später mal anschauen! Gibt es das zufällig auch noch in deutsch? Da ich im Bereich von Excel nur über Grundwissen verfüge macht es die englische Sprache nicht einfacher ;)

Lg und nochmals vielen Dank!
 
Wenn ich das richtig sehe steht der exakte Code, den du brauchst bereits in der Anleitung die von Benj gepostet wurde.

Diesen (
Code:
Function PrevSheet(RCell As Range)
    Dim xIndex As Long
    Application.Volatile
    xIndex = RCell.Worksheet.Index
    If xIndex > 1 Then _
        PrevSheet = Worksheets(xIndex - 1).Range(RCell.Address)
End Function
)

Danach würdest du einfach =PrevSheet(ZELLE) in die Zelle eintragen die deinen Bilanzwert aus dem vorhergehenden Jahr (Sheet) enthalten soll.

Wie man einen VBA-Code in Excel einfügt steht z.B. hier:

https://www.online-excel.de/excel/singsel_vba.php?f=44

( Ich habe jetzt nicht getestet ob der Code so wie er da in der Anleitung steht funktioniert. : ) )
 
Steht denn in den jeweiligen Tabellenblättern irgendwo auch das Jahr in einer Zelle?

Dann kannst du dieses mit der Funktion INDIREKT verwenden. Wenn das Jahr bspw. in Zelle A1 steht:
=INDIREKT("'Bilanz "&A1-1&"'!I8")
das ergibt im Blatt Bilanz 2019 bspw.:
="'Bilanz "&2019-1&"'!I8") = ="'Bilanz 2018'!I8"
und verweist dann auf das Blatt Bilanz 2018, Zelle I8.

Man könnte das Jahr auch aus dem Tabellenblattnamen auslesen - das macht die Formel aber arg kompliziert*.
Notfalls - falls das Jahr nirgends im Tabellenblatt steht, kannst du es ja jetzt irgendwo reinschreiben für obige Formel.

Das geht natürlich nur, wenn die Tabellenblätter immer der Reihe nach Bilanz Jahreszahl benannt sind.


*) =INDIREKT("'Bilanz "&RECHTS(TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;255);4)-1&"'!I8")
 
Zuletzt bearbeitet:
Hinweis: Bilanz mit einem L, sonst führt das sicher zu Problemen.
 
Hallo nochmals, und danke für eure ganzen Antworten!
Ich bin allerdings ehrlicherweise etwas überfordert damit ;(
Die Anleitung, wo ich die Makros habe ich mir angeschaut, aber da weiß ich nichtmal, welche ich da nutzen soll ;(
Heol schrieb:
Wenn ich das richtig sehe steht der exakte Code, den du brauchst bereits in der Anleitung die von Benj gepostet wurde.

Diesen (
Code:
Function PrevSheet(RCell As Range)
    Dim xIndex As Long
    Application.Volatile
    xIndex = RCell.Worksheet.Index
    If xIndex > 1 Then _
        PrevSheet = Worksheets(xIndex - 1).Range(RCell.Address)
End Function
)

Danach würdest du einfach =PrevSheet(ZELLE) in die Zelle eintragen die deinen Bilanzwert aus dem vorhergehenden Jahr (Sheet) enthalten soll.
Hier verstehe ich leider nicht, was ich dann in welche Zeile eingeben soll ;(

Cave Johnson schrieb:
Steht denn in den jeweiligen Tabellenblättern irgendwo auch das Jahr in einer Zelle?
Ja, in manchen Zeilen steht das Jahr: das gebe ich aber auch jedesmal per Hand ein. Da weiß ich auch nicht, wie das direkt um 1 erhöht wird!

Lg und danke

P.S.: Danke für den Hinweis zur Schreibweise von "Bilanz"... da war ich wohl noch nicht ganz wach ;) in der Datei steht es aber auch richtig ;)
-> Immerhin habe ich meinen Fehler hier durchgezogen :-D
 
Cave Johnson schrieb:
Für die Formel genügt es ja einmal ;) Such dir einfach eine Zelle, in der es auf jedem Tabellenblatt immer vorkommt, dann kannst du die Formel verwenden.
Vielen lieben Dank! Das scheint jetzt zu klappen!! Danke!
 
Zurück
Oben