Zellbezug auf vorangegangene Arbeitsmappe

01/11/2008 - 09:46 von Manuel M. | Report spam
Hallo zusammen

ich habe hier ein Excelfile mit der Arbeitsmappe "montagkw1" "Dienstagkw1"
"Mittwochkw1" bei sonntag gehts dann wieder auf "montagkw2" etc etc. nun
habe ich aber in der arbeitsmappe "dienstagkw1" einen Bezug auf Zelle M6 auf
Arbeitsmappe "montagkw1". Da der nàchste Tag immer erstellt wird
(mittwochkw1) möchte ich fragen ob es irgendwie geht, dass sich die Zelle für
"mittwochkw1" so eingeben làsst, dass sie automatisch auf "dienstagkw1" geht
und nicht auf "montagkw1" wie das Kopie-Orginal "dienstagkw1". Gibts da eine
Formel um zu sagen; Formel: "=(vorherigeArbeitsmappe; ZelleM6)?

Danke für eure Hilfe.
Ich hoffe ihr versteht mein Problem.

Schöne Grüsse
Manu
 

Lesen sie die antworten

#1 Thomas Ramel
01/11/2008 - 12:17 | Warnen spam
Grüezi Manuel

Manuel M. schrieb am 01.11.2008

ich habe hier ein Excelfile mit der Arbeitsmappe "montagkw1" "Dienstagkw1"
"Mittwochkw1" bei sonntag gehts dann wieder auf "montagkw2" etc etc. nun
habe ich aber in der arbeitsmappe "dienstagkw1" einen Bezug auf Zelle M6 auf
Arbeitsmappe "montagkw1". Da der nàchste Tag immer erstellt wird
(mittwochkw1) möchte ich fragen ob es irgendwie geht, dass sich die Zelle für
"mittwochkw1" so eingeben làsst, dass sie automatisch auf "dienstagkw1" geht
und nicht auf "montagkw1" wie das Kopie-Orginal "dienstagkw1". Gibts da eine
Formel um zu sagen; Formel: "=(vorherigeArbeitsmappe; ZelleM6)?



Auf direktem Wege ist das mit aufwàndigen Formeln möglich; ich habe mir zur
leichteren Anwendung daher eine Funktion dazu geschrieben.

Öffne den VBA-Editor mit Alt+F11
Füge über Einfügen/Modul ein neues Modul in der Mappe hinzu
Kopiere die folgenden Zeilen in dieses noch leere Modul:


Public Function VorNachTab(rngZelle As Range, _
Optional i As Integer = 0) As Variant

'© / 22.07.2005 / 1.9.2006 / 28.01.2007
'liefert den Werte einer Zelle aus dem nàchsten Tabellenblatt
'der Versatz im Index kann über den zweiten Parameter gegeben werden
'Beispiele: =VorNachTab(C2) / VorNachTab(C2;2) / VorNachTab(C2;-2)
'Vorsicht ist (einmal mehr) geboten bie 1904-Datumseinstellungen
'Die Funktion liefert dann die bekannte Verschiebung um 4 Jahre und 1 Tag
'
'Zur automatischen Aktualisierung im Tabellenblatt den folgenden Term
'anhàngen: +(0*JETZT()) und F9 drücken
'Also z.B. wie folgt: VorNachTab(C2;2)+(0*JETZT())

With Application.Caller.Parent
If .Index + i > .Parent.Sheets.Count Or .Index + i < 1 Then
VorNachTab = CVErr(xlErrRef)
Exit Function
End If
VorNachTab = Worksheets(.Index + i).Range(rngZelle.Address)
End With
End Function


Schliesse den VBA-Editor mit Alt+Q wieder und speichere dann die Mappe.

Nun kannst Du die Funktion wie im Kommentar beschrieben verwenden.


Mit freundlichen Grüssen
Thomas Ramel

- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-3]
Microsoft Excel - Die ExpertenTipps

Ähnliche fragen