Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
728to732
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
728to732
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zoom einer Zelle an/aus??

Zoom einer Zelle an/aus?
07.02.2006 23:33:41
Joachim
Hallo,
mit Hilfe von Sepp habe ich eine Zoomfunktion für bestimmte Zellen in meine Tabelle 1 eingebaut. Diese Zoomfunktion soll das Eintragen von Werten in diesen Zellen erleichtern, da bei hohen Auflösungen und kleinen Bildschirmen es sonst etwas schwierig ist.
Wenn ich nun aber eine kleine Auflösung habe, kann diese (gute) Funktion doch etwas störend sein.
Meine Frage:
Kann man diese Zoomfunktion entweder durch:
Prüfen der Bildschirmauflösung ausschalten - wenn die Auflösung z.B. kleiner als 800 x600 ist.
oder:
Durch einen Doppelklick in eine der (Zoom-) Zellen ausschalten und durch erneuten Doppelklick wieder einschalten?
Gruß
Joachim

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zoom einer Zelle an/aus?
08.02.2006 00:04:23
Nepumuk
Hallo Joachim,
die Bildschrimauflösung auszulesen ist ganz einfach:
Option Explicit

Private Declare Function GetSystemMetrics Lib "user32" ( _
    ByVal nIndex As Long) As Long

Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1

Public Sub test()
    MsgBox GetSystemMetrics(SM_CXSCREEN) _
        & " x " & GetSystemMetrics(SM_CYSCREEN) _
        & " Pixel"
End Sub

Gruß
Nepumuk

Anzeige
AW: Zoom einer Zelle an/aus?
08.02.2006 00:12:01
Joachim
Hallo,
wunderbar....
Wie kann ich nun den Code derart ändern, dass er nur diese Zoomfunktion durchführt, wenn die Auflösung größer als 800 x 600 ist?
Der Code für die Zoomfunktion sieht bei mir, wie folgt aus:
If Not Intersect(Target, Range("G82,I83,J85,H82,J84,J86,E1,K1")) Is Nothing Then
blnZoom = True
With ActiveWindow
.Zoom = 150
On Error Resume Next
.ScrollRow = Target.Row - CInt(.VisibleRange.Rows.Count / 2) + 1
.ScrollColumn = 1
.ScrollColumn = Target.Column - CInt(.VisibleRange.Columns.Count / 2) + 1
On Error GoTo 0
End With
Else
If blnZoom Then
blnZoom = False
With ActiveWindow
.ScrollColumn = 1
.ScrollRow = 1
.Zoom = 75
End With
End If
Gruß
Joachim
Anzeige
AW: Zoom einer Zelle an/aus?
08.02.2006 00:19:02
Nepumuk
Hallo Joachim,
na so:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Declare Function GetSystemMetrics Lib "user32.dll" ( _
    ByVal nIndex As Long) As Long

Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1

Private blnZoom As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If GetSystemMetrics(SM_CXSCREEN) > 800 Then
        If Not Intersect(Target, Range("G82,I83,J85,H82,J84,J86,E1,K1")) Is Nothing Then
            blnZoom = True
            With ActiveWindow
                .Zoom = 150
                On Error Resume Next
                .ScrollRow = Target.Row - Cint(.VisibleRange.Rows.Count / 2) + 1
                .ScrollColumn = 1
                .ScrollColumn = Target.Column - Cint(.VisibleRange.Columns.Count / 2) + 1
                On Error GoTo 0
            End With
        Else
            If blnZoom Then
                blnZoom = False
                With ActiveWindow
                    .ScrollColumn = 1
                    .ScrollRow = 1
                    .Zoom = 75
                End With
            End If
        End If
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Zoom einer Zelle an/aus?
08.02.2006 09:38:31
Siggibär
Hallo zusammen,
ich hätte hierzu noch eine Ergänzungsfrage:
Kann man den VBA Code so umschreiben, dass die Funktion nur dann stattfindet, wenn zuvor ein bestimmtes Ereignis stattfindet.
Z.B. will ich die automatische Zoomfunktion nur dann aktiviert haben, wenn ich eine bestimmte Tastenkombination drücke (z.B. Strg + Z) und wieder deaktivieren bei einer anderen Tastenkombination (z.B. Strg + A)
Danke
Gruß Siggi
AW: Zoom einer Zelle an/aus?
08.02.2006 09:54:30
Nepumuk
Hallo Siggi,
mit Alt+z einschalten und mit Alt+w ausschalten. Die Tastenkombis mit Strg sind fast alle belegt.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "%z"
    Application.OnKey "%w"
End Sub

Private Sub Workbook_Open()
    Application.OnKey "%z", "prcZoomOn"
    Application.OnKey "%w", "prcZoomOff"
End Sub

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Declare Function GetSystemMetrics Lib "user32.dll" ( _
    ByVal nIndex As Long) As Long

Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1

Private blnZoom As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If GetSystemMetrics(SM_CXSCREEN) > 800 And blnZoomOn Then
        If Not Intersect(Target, Range("G82,I83,J85,H82,J84,J86,E1,K1")) Is Nothing Then
            blnZoom = True
            With ActiveWindow
                .Zoom = 150
                On Error Resume Next
                .ScrollRow = Target.Row - Cint(.VisibleRange.Rows.Count / 2) + 1
                .ScrollColumn = 1
                .ScrollColumn = Target.Column - Cint(.VisibleRange.Columns.Count / 2) + 1
                On Error GoTo 0
            End With
        Else
            If blnZoom Then
                blnZoom = False
                With ActiveWindow
                    .ScrollColumn = 1
                    .ScrollRow = 1
                    .Zoom = 75
                End With
            End If
        End If
    End If
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public blnZoomOn As Boolean

Public Sub prcZoomOn()
    blnZoomOn = True
End Sub

Public Sub prcZoomOff()
    blnZoomOn = False
End Sub

Gruß
Nepumuk

Anzeige
AW: Zoom einer Zelle an/aus?
08.02.2006 10:21:32
Siggibär
Hallo,
funktioniert bei mir so nicht.
Habe die Kombination (auch im Code) auf "p" und "l" umgestellt da die anderen bereits belegt waren. Habe die Datei geschlossen und neu geöffnet, aber passieren tut nichts bei den Tastenkombinationen.
AW: Zoom einer Zelle an/aus?
08.02.2006 10:28:26
Nepumuk
Hallo Siggi,
ich habe das Ganze mit dem Ereignis verknüpft, das ausgelöst wird, wenn du z.B. die Zelle G82 anwählst. Oder was wolltest du? Das ging nämlich aus deiner Anfrage nicht hervor.
Gruß
Nepumuk

AW: Zoom einer Zelle an/aus?
08.02.2006 11:29:25
Siggibär
Hallo,
das sollte eigendlich für alle Zellen gelten (kein bestimmter Bereich)
Ich habe das mit der Zelle E1 versucht, aber da passierte nichts.
Gruß Siggi
Anzeige
AW: Zoom einer Zelle an/aus?
08.02.2006 12:00:42
Nepumuk
Hallo Siggi,
versuch es mal so:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "%p"
    Application.OnKey "%l"
End Sub

Private Sub Workbook_Open()
    Application.OnKey "%p", "prcZoomOn"
    Application.OnKey "%l", "prcZoomOff"
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub prcZoomOn()
    ActiveWindow.Zoom = 150
End Sub

Public Sub prcZoomOff()
    ActiveWindow.Zoom = 100
End Sub

Gruß
Nepumuk

Anzeige
AW: Zoom einer Zelle an/aus?
08.02.2006 12:33:26
Siggibär
thats it
Danke
Gruß Siggi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige