FreezePanes-Eigenschaft kann nicht festgelegt werd
13.06.2017 12:01:18
Peter
Mit nachfolgendem Code habe ich in der Vergangenheit in einem Worksheet die Fensterfixierung vorgenommen. Das ist insbesondere nötig, da ich zwischendurch ein zweites Fenster aufmache.
Nun funktioniert der Code nicht mehr, und zwar an folgender Stelle:
'Eventuell bestehende Fixierung TabSchutzDeaktivieren
wndFenster.FreezePanes = Falsej
Da kommt der Laufzeitfehler "Die FreezePanes-Eigenschaft des Windows-Objektes kann nicht festgelegt werden"
Das Worksheet ist nicht geschützt.
Hat jemand eine Idee, weshalb das nicht mehr geht?
Gruss, Peter
Sub Bereiche_fixieren()
''Fenster fixieren anhand von Drucktitel
''''mit Ergänzungen durch PS
''mit Ergänzungen durch Josef Ehrensberger am: 19.07.2009
Dim wndFenster As Window, actWin As Window
Dim shBlatt As Worksheet, actWsh As Worksheet
Dim rngOldSel As Range
Dim strZeilen As String, strSpalten As String
Dim lngZeile As Long, lngSpalte As Long
'Aktuell aktives Fenster speichern
Set actWin = ActiveWindow
For Each wndFenster In ActiveWorkbook.Windows
wndFenster.Activate
'Aktives Fenster minimieren (damit Flackern unterbunden werden kann -
'kann nicht mit ScreenUdating = False gemacht werden, da sonst
'Fensterfixierung nicht funktioniert)
Application.WindowState = xlMinimized
' Aktuell aktives Blatt speichern
Set actWsh = ActiveSheet
'Alle Arbeitsblätter in der Mappe durchlaufen
For Each shBlatt In ActiveWorkbook.Worksheets
'Aktivieren
shBlatt.Activate
'Markierten Bereich merken
Set rngOldSel = Selection
'Drucktitel (Zeilen und Spalten auslesen)
strZeilen = ActiveSheet.PageSetup.PrintTitleRows
strSpalten = ActiveSheet.PageSetup.PrintTitleColumns
'Ohne Drucktitel nichts ändern.
If strZeilen "" Or strSpalten "" Then
'Zeile bestimmen, oberhalb derer fixiert werden soll
If strZeilen = "" Then
lngZeile = 1
Else
lngZeile = Range(strZeilen).Rows(Range(strZeilen).Rows.Count).Row + 1
End If
'Spalte bestimmen, von der links fixiert werden soll
If strSpalten = "" Then
lngSpalte = 1
Else
lngSpalte = Range(strSpalten).Columns(Range(strSpalten).Columns.Count).Column + 1
End If
'Eventuell bestehende Fixierung TabSchutzDeaktivieren
wndFenster.FreezePanes = False
'Zelle wählen, fixieren
wndFenster.Activate
Cells(lngZeile, lngSpalte).Select
wndFenster.FreezePanes = True
'Alte Auswahl wieder herstellen
rngOldSel.Activate
End If
Next shBlatt
' Wieder zurück zum zuvor aktiven Blatt
actWsh.Activate
Next wndFenster
'wieder zurück zum zuvor aktiven Fenster
actWin.Activate
' Fenster wieder in der ursprünglichen Grösse anzeigen
Application.WindowState = xlNormal
Set rngOldSel = Nothing
End Sub