Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excelfenster an Zellbereich anpassen

Excelfenster an Zellbereich anpassen
26.10.2018 13:32:41
Felix
Hallo Excel-Profis,
ich bin auf der Suche nach einer VBA-Funktion, welche mir das Excelfenster so zusammenzieht, dass nur noch der gewünschte Bereich sichtbar ist. Weiterhin soll die komplette Excelumgebung ausgeblendet werden.
Im Anhang seht ihr meinen aktuellen Stand. https://www.herber.de/bbs/user/124926.xlsm
Der Code in "dieser Arbeitsmappe" lautet wie folgt:
Private Sub Workbook_Activate()
Call SubUmgebungausblenden
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call SubUmgebungeinblenden
End Sub
Private Sub Workbook_Deactivate()
Call SubUmgebungeinblenden
End Sub
Private Sub Workbook_Open()
Dim wSheetName As Worksheet
Dim hoch As Integer
Dim breit As Integer
Application.ScreenUpdating = False
For Each wSheetName In Worksheets
wSheetName.Protect Password:="test", UserInterFaceOnly:=True
Next wSheetName
With Sheets("Maske")
.Range("D3").Select
.ScrollArea = "A1:Q23"
End With
Application.WindowState = xlMaximized
hoch = CInt(Application.UsableHeight)
breit = CInt(Application.UsableWidth)
With Application.ActiveWindow
.WindowState = xlNormal
.Top = (hoch / 2) - 169
.Left = (breit / 2) - 422
.Width = 809
.Height = 329
End With
Application.ScreenUpdating = True
Call SubUmgebungausblenden
End Sub
Sub SubUmgebungeinblenden()
With Application
.ScreenUpdating = False
.ExecuteExcel4Macro "Show.Toolbar(""Ribbon"", True)"
.DisplayFormulaBar = True
.DisplayStatusBar = True
End With
With Application.ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayHeadings = True
.DisplayWorkbookTabs = True
End With
Application.ScreenUpdating = True
End Sub
Sub SubUmgebungausblenden()
With Application
.ScreenUpdating = False
.ExecuteExcel4Macro "Show.Toolbar(""Ribbon"", False)"
.DisplayFormulaBar = False
.DisplayStatusBar = False
End With
With Application.ActiveWindow
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
.DisplayHeadings = False
.DisplayWorkbookTabs = False
End With
Application.ScreenUpdating = True
End Sub

Ich sehe nun auf meinem Rechner mit meinen Einstellungen das Fenster so wie ich es mir vorstelle. (Alles außerhalb von A1:Q23 ist nicht sichtbar)
Das Problem: Auf anderen Rechnern gibt es leichte Abweichungen. Ich habe mir bereits zu helfen versucht, indem ich die Höhe und Breite des Bildschirmes per Excel ausmesse und es daran anpasse, jedoch gibt es da irgendwie Probleme.
Die ideale Lösung für mich wäre es also den Bereich anhand der Zellen A1:Q23 einzuschränken unabhängig von Bildschirm und Auflösung.
Hier noch so wie es aussehen soll:
https://www.herber.de/bbs/user/124927.gif
Viele Grüße
Felix
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excelfenster an Zellbereich anpassen
26.10.2018 16:25:34
Daniel
Hi
für eine bessere Anpassung solltest du die Breite und Höhe aus der Breite und Höhe des Fensters aus Breite und Höhe des anzuzeigenden Zellbereichs ermitteln:
die Höhe und Breite des Zellbereichs kannst du abfragen
Sheets("Maske").Range("A1:Q23").Width
Sheets("Maske").Range("A1:Q23").Height

ebenso kannst du die Höhe und Breite des aktuell angezeigten Bereichs abfragen:
ActiveWindow.VisibleRange.Height
ActiveWindow.VisibleRange.Width

die notwendige Höhe und Breite des Fensters ergibt sich dann aus der Höhe/Breite des anzueigenden Bereichs + einen Zuschlag für restliche Menüs und Fensterränder.
Diese Ränder können je nach Anwendereinstellung unterschiedlich sein, daher kannst du da nicht viel machen.
Aber du kannst diesen Zuschlag ermitteln, in dem du die Differenz aus Fensterhöhe und Höhe es aktuell angezeigten Bereichs bildest:
ActiveWindow.Height = Sheets("Maske").Range("A1:Q23").Height + (ActiveWindow.Height - ActiveWindow.VisibleRange.Height)

für .Width dann analog.
diese Einstellung machst du, nachdem du alle Menüs und Scrollbars ausgeschaltet hast.
Gruß Daniel
Anzeige
AW: Excelfenster an Zellbereich anpassen
29.10.2018 09:08:54
Felix
Hi Daniel,
ich danke dir vielmals für den Tipp. Habe das Ganze jetzt so gestaltet:
'(Eingefügt nach End With mit Scroll Area)
Call SubUmgebungausblenden
Application.WindowState = xlMaximized
With Sheets("Maske").Range("A1:Q23")
hoch = .Height
breit = .Width
End With
With Application.ActiveWindow
.WindowState = xlNormal
randhoch = .Height - .VisibleRange.Height
randbreit = .Width - .VisibleRange.Width
.Height = hoch + randhoch
.Width = breit + randbreit
End With
Kam bisher noch nicht dazu es auf einem zweiten Rechner zu testen, aber so funktioniert es erstmal sehr gut (Zweitbildschirm zum testen genutzt). Danke nochmal.
Viele Grüße
Felix
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige