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

Blatt -- posintionieren nach Aktion...

Blatt -- posintionieren nach Aktion...
04.02.2006 19:30:42
Joachim Röder
Hallo,
ich habe hier zwei -hoffentlich kleine Probleme-
Damit ich Eingaben in bestimmte Zellen besser machen kann, vergössere ich diese.
Nachdem dieser Eintrag erfolgt ist verkleinert sich die Tabelle wieder.
-----------
Dies mache ich mit folgendem Code:
If Intersect(Target, Range("J85,H82,J84,E1")) Is Nothing Then
ActiveWindow.Zoom = 75
Exit Sub
End If
ActiveWindow.Zoom = 150
End Sub
--------------
Nun kommt das eigentliche:
Nach der Rückstellung ist die erste Spalte links nicht mehr A sondern B oder sogar C und die linken Spalten können nur durch scrollen wieder in Sichtbare gebracht werden.
Wie kann man dieses vermeiden?
Heisst also: Wenn ein Eintrag in der gezoomten Zelle gemacht wurde und der Cursor zur nächsten Zelle springt soll auch gleichzeitig die Spalte A wieder sichtbar sein.
Ich stelle mir so einen Befehl : ActiveWindow.(position) = Left nach ActiveWindow.Zoom = 150 vor --- den es natürlich - leider nicht gibt.
----------------------
Als zweites möchte ich die vergrösserte Zelle möglichst in der Bildschirmmitte haben. Natürlich nur wenn es die Tabelle überhaupt zulässt - die Zelle E1 z.B. kann natürlich nur oben in der Mitte erscheinen im Gegensatz zur Zelle H82 - die sich nach Anwahl rechts unten befindet.
---------------------
Gruß
Jaochim

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blatt -- posintionieren nach Aktion...
04.02.2006 19:54:19
Josef Ehrensberger
Hallo Joachim!
Probier's mal so!
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit
Dim blnZoom As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("J85,H82,J84,E1")) Is Nothing Then
  blnZoom = True
  With ActiveWindow
    .Zoom = 100
    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
      .Zoom = 75
    End With
  End If
End If
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Blatt -- posintionieren nach Aktion...
04.02.2006 20:11:21
Joachim Röder
Sei gegrüßt Sepp,
vielen Dank - du verstehst es richtig - die Funktion ist (fast) OK.
Nur die Rückstellung (vekleinern auf 75 %) erfolgt nicht.
Wenn ich von der 75% Ansicht auf eine Zelle gelange die die 150% Ansicht ausführt und ich diese Zelle wieder verlasse bleibt die 150% Ansicht erhalten.
Gruß
Joachim
AW: Nachtrag zur 1rsten Anwort
04.02.2006 20:25:43
Joachim Röder
Hallo Sepp,
um es ganz richtig zu berichten nachfolgend wie ich deinen Code eingebaut habe.
Ich habe ihn an einen bestehenden anderen angehängt.
Ich hoffe es ist richtig so gewesen:
-----------------------

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
ActiveSheet.Unprotect
Static Zelle As Range
If Application.CutCopyMode Then Exit Sub
If Not Zelle Is Nothing Then
Cells.Interior.ColorIndex = xlColorIndexNone
End If
Target.Interior.ColorIndex = 6 ' Gelb
Set Zelle = Target
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Protect
Dim blnZoom As Boolean
'

Private Sub Worksheet_SelectionChange(ByVal Target As Range) HABE DEAKTIVIERT DA FEHLERMELDUNG..... RICHTIG SO ???
If Not Intersect(Target, Range("J85,H82,J84,E1")) 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
.Zoom = 75
End With
End If
End If
End Sub

--------------------
Gruß
Joachim
Anzeige
Fast!
04.02.2006 21:28:27
Josef Ehrensberger
Hallo Joachim!
Fast! Nur die Dimensionierung von "blnZoom", muss ausserhalb der Prozedur erfolgen!
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Dim blnZoom As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

ActiveSheet.Unprotect
Static Zelle As Range
If Application.CutCopyMode Then Exit Sub
If Not Zelle Is Nothing Then
  Cells.Interior.ColorIndex = xlColorIndexNone
End If
Target.Interior.ColorIndex = 6 ' Gelb
Set Zelle = Target
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Protect


If Not Intersect(Target, Range("J85,H82,J84,E1")) 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
      .Zoom = 75
    End With
  End If
End If
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Fast!
04.02.2006 23:22:05
Joachim Röder
Hallo Sepp,
genial -- deine Lösungen.
-------------
Ich glaube fast, dass du VBA-Code schon zum Frühstück einnimmst. ;-)
Ich sehe aber auch, dass mein Weg dahin nicht gerade ein kurzer ist.
-------------
Noch eine kleine Sache:
Kann man festlegen, dass die Zeile 1 nach einer erfolgten Aktion immer wieder auch
als erste Zeile in der Ansicht erscheint?
Im Moment ist es so, dass je nach erfolgter Aktion die erste aber auch die 6te oder 7te oder, oder, oder als erste Zeile erscheint.
--------------
Gruß
Joachim
AW: Fast!
05.02.2006 01:18:53
Josef Ehrensberger
Hallo Joachim!
Füge statt

With ActiveWindow
.ScrollColumn = 1
.Zoom = 75
End With

das ein

With ActiveWindow
.ScrollColumn = 1
.ScrollRow = 1
.Zoom = 75
End With

'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
Bingo !!! - es ist geschafft - Danke..
05.02.2006 14:45:20
Joachim Röder
Hallo Sepp,
vielen Dank.
Das war das i-Tüpfelchen für den Komfort.
Alles Gute und Grüße aus Düsseldorf
Joachim

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige