Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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

23 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige