AW: neue Version
12.02.2007 08:40:27
Erich
Hi Erich,
danke für Deine Rückmeldung! Die Lösung hat aber noch einen heftigen Nachteil:
Alle Blätter werden "beschmutzt" durch den EIntrag in IV1.
Das bläht den verwendeteten Bereich und auch den Standard-Druckbereich unnötig auf.
Durch Nutzung einer Dokumenteigenschaft lässt sich das vermeiden.
Hier wird auch gleich die Funktionsleiste beim Öffnen erstellt und beim Schließén wieder gelöscht:
in DieseArbeitsmappe:
Option Explicit
' LetztesBlatt eintragen (wenn ...)
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Index >= Sheets("Anfang").Index And _
Sh.Index <= Sheets("Ende").Index Then _
ActiveWorkbook.CustomDocumentProperties("LetztesBlatt").Value = Sh.Name
End Sub
' Symbolleiste "myZurück" anlegen
Private Sub Workbook_Open()
Dim oBar As CommandBar, oBtn As CommandBarButton
On Error Resume Next
Application.CommandBars("myZurück").Delete
On Error GoTo 0
Set oBar = Application.CommandBars.Add("myZurück", msoBarTop, False, True)
Set oBtn = oBar.Controls.Add
With oBtn
.Caption = "Zurück"
.FaceId = 41 ' Pfeil nach links
.OnAction = "Zurueck" ' Name des Makros
.Style = msoButtonIconAndCaption
End With
oBar.Visible = True
End Sub
' Symbolleiste "myZurück" löschen
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("myZurück").Delete
On Error GoTo 0
End Sub
<b>in ein allg. Modul:
Option Explicit
Sub Zurueck() ' Code zu Zurück-Button in Funktionsleiste
Sheets(ActiveWorkbook.CustomDocumentProperties("LetztesBlatt").Value).Activate
End Sub
Sub InitEigenschaft()
' Dateieigenschaft einrichten (einmalig!)
' kann man auch per Hand machen:
' Datei - Eigenschaften - Reiter "Anpassen"
' Name: LetztesBlatt
' Typ: Text
' Wert: Anfang
Dim prop As DocumentProperty, blnOK As Boolean
' prüfen, ob Eigenschaft schon angelegt
For Each prop In ActiveWorkbook.CustomDocumentProperties
If prop.Name = "LetztesBlatt" Then blnOK = True
Next prop
If Not blnOK Then ActiveWorkbook.CustomDocumentProperties.Add Name:="LetztesBlatt", _
LinkToContent:=False, Type:=msoPropertyTypeString, Value:="Anfang"
End Sub
Zu deiner Frage in Klammern: Beiträge können ausschliesslich von Hans W. Herber editiert werden.
(Nochmal Danke an Hans dafür!)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort