Hi,
gut erklärt ist halb gelöst ;D
Man muß den Wert halt beim Öffnen der Arbeitsmappe speichern und beim Verlassen wieder zurücksetzen.
Also erstmal einen Merker erzeugen
Zum speichern einer Variablen benötigen man ein Modul. (VB-Editor->rechte Maustaste auf VBAProjekt->einfügen->Modul)
Modul öffnen (z.B. Doppelklick auf Modul1)
öffentliche Variable einfügen z.B.
Nun die Prozedur einfügen, die beim Öffnen der Arbeitsmappe den allgemeinen Wert in dieser Variablen speichert.
Dazu im VB-Editor 'Diese Arbeitsmappe' doppelt klicken.
Es öffnet sich das Fenster von 'Diese Arbeitsmappe'.
Oben links im Fenster in der Auswahlbox 'workbook' auswählen. Im Code-Fenster 'Diese Arbeitsmappe' den folgenden Code eingeben:
Code:
Private Sub Workbook_Open()
l_merker = Application.MoveAfterReturnDirection
End Sub
Das ganz speichern.
Jetzt wird beim Öffnen der Mappe der allgemeine Wert in l_merker gespeichert.
Arbeitsmappe schliessen.
Arbeitsmappe wieder öffnen. Nun ist der Makro schon aktiv geworden und hat den allgemeinen Wert in der Variablen gespeichert.
Jetzt die Prozeduren einfügen, die beim Schliessen der Arbeitsmappe den Wert der Variablen in den allgemeinen Wert zurückschreibt.
Dazu wieder im VB-Editor 'Diese Arbeitsmappe' doppelt klicken.
Es öffnet sich das Fenster von 'Diese Arbeitsmappe'.
Oben links im Fenster in der Auswahlbox 'workbook' auswählen. Im Code-Fenster 'Diese Arbeitsmappe' den folgenden Code eingeben:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.MoveAfterReturnDirection = l_merker
End Sub
Jetzt die Makros in die Tabellenblätter einfügen, wie es PCDJoe beschrieben hat und fertig
Gruß Matjes