DisplayGridlines

Bild

Betrifft: DisplayGridlines von: Michael
Geschrieben am: 11.02.2005 19:08:53

Ich habe ein Verständnisproblem bezüglich der Gridlines.

Formal ist 'DisplayGridlines' eine Eigenschaft des Window-Objekts. Ok.
In einer Arbeitsmappe (mit einem Fenster) kann es mehrere Tabellenblätter geben, manche mit und manche ohne Gitternetzlinien. Die DisplayGridlines-Eigenschaft des Fensters hängt also davon ab, welches Tabellenblatt gerade aktiv ist. Woher nimmt nun das Fenster die Information, ob das aktive Tabellenblatt ein- oder ausgeschaltete Gitternetzlinien hat?
Für mich spricht alles dafür, daß die Information doch irgendwo im Tabellenblatt 'stecken' muß und 'DisplayGridlines' eigentlich eine Worksheet-Eigenschaft ist.

Läßt sich die Aufgabe 'Gitternetzlinien in allen Tabellenblättern ausschalten' trotzdem nur dadurch lösen, daß alle Tabellenblätter einzeln aktiviert werden, damit man dann im Fenster die DisplayGridlines-Eigenschaft ausschalten kann?
Mir widerstrebt das zutiefst.

Danke

Bild


Betrifft: AW: DisplayGridlines von: Ulf
Geschrieben am: 11.02.2005 19:13:06


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveWindow.DisplayGridlines = False
End Sub


Ulf


Bild


Betrifft: AW: DisplayGridlines von: chris b
Geschrieben am: 11.02.2005 19:13:53

ziemlich zeitgleich :)))


Bild


Betrifft: AW: DisplayGridlines von: Ulf
Geschrieben am: 11.02.2005 19:15:53

Super, nun darfst du mir drei Wünsche erfüllen.

Ulf


Bild


Betrifft: AW: DisplayGridlines von: chris b
Geschrieben am: 11.02.2005 19:13:06

Einfach starten dann hast du entweder wie du möchtest in allen Sheets Gridlines oder auch nicht.Hoffe es hilft dir ?

Rückmeldung wäre nicht schlecht.


Sub Makro1()
For Each sh In ActiveWorkbook.Worksheets
sh.Activate
    ActiveWindow.DisplayGridlines = False
    Next
End Sub



Bild


Betrifft: AW: DisplayGridlines von: Michael
Geschrieben am: 11.02.2005 19:21:26

Die Codes funktionieren, lösen aber mein Verständnisproblem nicht.

Woher nimmt das Fenster die Information, ob das aktive Tabellenblatt ein- oder ausgeschaltete Gitternetzlinien hat?

Michael


Bild


Betrifft: AW: DisplayGridlines von: Ulf
Geschrieben am: 11.02.2005 19:30:56

Einige Informationen werden in einer für den user nicht sichtbaren Protokolltabelle
gespeichert, andere in Namen(z.B. Druckbereich, Ansichten).

Ulf


Bild


Betrifft: AW: DisplayGridlines von: Michael
Geschrieben am: 11.02.2005 19:33:02

Gibt es Zugriffsmöglichkeiten?

Michael


Bild


Betrifft: AW: DisplayGridlines von: Ulf
Geschrieben am: 11.02.2005 19:35:20

Das tust du doch, indem du z.B. die Einstellung in den Optionen änderst.

Ulf


Bild


Betrifft: AW: DisplayGridlines von: Michael
Geschrieben am: 11.02.2005 19:45:29

Ich meinte einen direkten VBA-Zugriff auf die etwaigen Protokolltabellen o.ä. und somit einen direkten Zugriff auf die Information, ob die Gridlines in einem Blatt ein- oder ausgeschaltet sind, ohne das Blatt erst aktivieren zu müssen.

Michael


Bild


Betrifft: AW: DisplayGridlines von: Ulf
Geschrieben am: 11.02.2005 19:55:45

Keine Ahnung, glaub ich aber nicht.

Ulf


Bild


Betrifft: Danke von: Michael
Geschrieben am: 11.02.2005 20:00:41

Ich werde wohl mit leben müssen, daß ich nur über die Krücke 'Window' an die Information herankomme, die ich haben will.

Trotzdem Danke an Alle.

Michael


Bild


Betrifft: AW: Danke von: chris b
Geschrieben am: 11.02.2005 20:08:47

Hallo Michael jetzt weiß ich was du willst.Glaube ich zumindest :)
Hier der Code wenn cb False dann deaktiviert die Gridlines wenn true dann aktiviert.


Sub neu()
cb = ActiveWindow.DisplayGridlines
End Sub


Ps Rückmeldung nicht vergessen.


Bild


Betrifft: AW: Danke von: Ulf
Geschrieben am: 11.02.2005 20:13:55

Ich denke, es ging eher darum, den Status der Gridleines abzufragen, wenn das Fenster nicht aktiv ist.

Ulf


Bild


Betrifft: AW: Danke von: Michael
Geschrieben am: 11.02.2005 20:24:57

Exakt!

Michael


Bild


Betrifft: AW: Danke von: Michael
Geschrieben am: 11.02.2005 20:20:08

Nein, das war's leider nicht. Daß das so funktioniert ist mir klar.

Ich wollte OHNE das Window-Objekt an die Information über die Gridlines heran, um auch die Gridlines-Einstellung von nicht aktiven Tabellenblättern lesen zu können.

Michael


Bild


Betrifft: ähnlich ist es mit... von: Matthias G
Geschrieben am: 11.02.2005 20:49:02

Hallo Michael,

...der Information, welche Zelle im jeweiligen Tabellenblatt "aktiv" ist.
Ist ja auch irgenwo in Excel gespeichert, kann man m.W. nur durch Aktivieren des Blattes herausfinden.

Gruß Matthias


Bild


Betrifft: Aus der Hilfe: von: Boris
Geschrieben am: 11.02.2005 19:35:24

Hi Michael,

Window-Objekt

Stellt ein Fenster dar. Viele Tabellenblattelemente, wie Bildlaufleisten und Gitternetzlinien, sind in Wirklichkeit Eigenschaften des Fensters. Das Window-Objekt ist ein Element der Windows-Auflistung. Die Windows-Auflistung für das Application-Objekt enthält alle Fenster der Anwendung, während die Windows-Auflistung für das Workbook-Objekt nur die Fenster in der angegebenen Arbeitsmappe enthält.



Grüße Boris


Bild


Betrifft: Vergiss meine Antwort...oT von: Boris
Geschrieben am: 11.02.2005 19:38:10




Bild


Betrifft: AW: DisplayGridlines von: FP
Geschrieben am: 11.02.2005 22:06:26

Hi Michael,

wo sich die Info versteckt ? Keine Ahnung, aber so erhältst Du die Info, ob in einem bestimmten ( gerade nicht aktiven ) Blatt die Gitternetzlinien angezeigt werden:

Public

Function WSDisplayGridlines(Optional wsi As Integer = 1) As Boolean
  Dim wsA   As Worksheet  'gerade aktives Blatt
  If wsi > ActiveWorkbook.Sheets.Count Then Exit Function
  Set wsA = ActiveSheet
  Sheets(wsi).Activate
  WSDisplayGridlines = ActiveWindow.DisplayGridlines
  wsA.Activate
End Function


Servus aus dem Salzkammergut
Franz


Bild


Betrifft: AW: DisplayGridlines von: Ulf
Geschrieben am: 11.02.2005 22:08:29

Ich denke, es ging eher darum, den Status der Gridleines abzufragen, wenn das Fenster nicht aktiv ist.

Ulf


Bild


Betrifft: AW: DisplayGridlines von: Michael
Geschrieben am: 11.02.2005 22:11:33

Exakt!


Bild


Betrifft: keine Lösung aber.... von: Josef Ehrensberger
Geschrieben am: 11.02.2005 23:59:28

Hallo Michael!

...ohne jedes einzelne Blatt zu aktivieren geht's zB. so.


Sub ToggleGridLines()
Dim sht As Worksheet
Dim aSht As Worksheet
Set aSht = ActiveSheet
On Error GoTo ERRORHANDLER
Application.ScreenUpdating = False
   For Each sht In ThisWorkbook.Worksheets
   sht.Select False
   Next
ActiveWindow.DisplayGridlines = Not ActiveWindow.DisplayGridlines
aSht.Select True
ERRORHANDLER:
Application.ScreenUpdating = True
End Sub


Mit dem Code kannst du zwischen Gitter - Ein/Aus wechseln!

Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: keine Lösung aber.... von: Michael
Geschrieben am: 12.02.2005 09:15:15

Es ist wohl wie so oft bei Computeranwendungen. Das was man eigentlich will, geht nicht. Aber nach außen hin schafft man es durch Tricksen dann doch.

Michael

PS: Warum eigentlich 'sht.Select FALSE' ?


Bild


Betrifft: AW: keine Lösung aber.... von: Josef Ehrensberger
Geschrieben am: 12.02.2005 10:00:54

Hallo Michael!

Das Argument "FALSE" gibt's bei Select nur in Verbindung mit
dem Worksheet Objekt. Es gibt an, ob das Auswählen eines Sheets
die bisherige Auswahl ersetzt oder erweitert!

Gruß Sepp


Bild


Betrifft: AW: DisplayGridlines von: FP
Geschrieben am: 11.02.2005 22:29:05

Hi Ulf,

das kann man aber eben nur herausfinden, wenn man das Blatt kurz aktiviert ;-)

Servus aus dem Salzkammergut
Franz


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Usernamen anzeigen lassen"