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

geht nicht ohne "Select" ??

geht nicht ohne "Select" ?
30.09.2005 05:23:24
Franz
Hallo Fachleute,
bin grad über einen meiner ersten Codes gestolpert und wollte ihn "modernisieren" (besser: ausmisten :-))), dabei stoße ich auf folgende Schwierigkeit:
bisher:
For t = 1 To Sheets.Count
Sheets(t).Select
If Not ActiveSheet.Name = "Plan" Then
ActiveSheet.Unprotect
ActiveWindow.Zoom = 95
...
...
...
Das wollte ich ändern in:
For t = 1 To Sheets.Count
With Sheets(t)
If Not .Name = "Plan" Then
.Unprotect
.Zoom = 95
... kommt allerdings bei der letzten Zeile ".Zoom = 95" die Meldung: "Objekt unterstützt diese Eigenschaft oder Methode nicht." Geht das nicht ohne das Blatt zu aktivieren? Oder gibt's da ne Möglichkeit?
Für Eure Hilfe schon mal danke im Voraus und Grüße
Franz

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: geht nicht ohne "Select" ?
30.09.2005 06:03:20
Hajo_Zi
Hallo Franz,
intressantes Thema. Ich such ja auch immer nach Lösungen ohne select, Activate usw. Für den Zoom habe ich bisher keine Lösung gefunden. Um das select zu vermeiden benutze ich die Aktion Private Sub Workbook_SheetActivate(ByVal Sh As Object) um den Zoom auszuführen.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


AW: geht nicht ohne "Select" ?
30.09.2005 06:29:53
Erich
Hallo Franz,
Zoom ist nicht Eigenschaft eines Blatts, sondern eines Fensters. Ein Blatt kann in mehreren Fenstern (mit unterschiedlichen Zoomfaktoren) angezeigt werden.
In deinem alten Code stand ja auch "ActiveWindow.Zoom = 95" und nicht "ActiveSheet.Zoom = 95".
Die VBA-Hilfe zu Zoom (für das Window-Objekt) sagt:
"Diese Funktion wirkt sich nur auf das Blatt aus, das im Fenster derzeit aktiv ist. Wenn Sie diese Eigenschaft auf andere Blätter anwenden möchten, müssen Sie diese zuerst aktivieren."
Also kommst du bei der Zoom-Einstellung für ein inaktives Blatt um "Sheets(t).Select" oder "Sheets(t).Activate" nicht herum. Oder du verzichtest darauf und nimmst Hajos Vorschlag, in dem beim Aktivieren eines Blatts gezoomt wird.
Anders verhält es sich beim Zoom für den Ausdruck
With Sheets(t)
.PageSetup.Zoom = 150
End With
funktioniert. Die Seiteneinrichtung ist eine Blatt-Eigenschaft, und Zoom ist eine Eigenschaft der Seiteneinrichtung.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: geht nicht ohne "Select" ?
30.09.2005 07:14:48
Franz
Hallo Hajo und Erich,
zunächst mal danke für Eure Tipps. Das mit Sheet_Activate hab ich woanders auch schon mal eingesetzt, geht hier aber leider nicht, weil es verschiedene Zustände der einzelnen Blätter gibt (mal gesperrt ohne Symbolleisten, mal entsperrt mit Symbolleisten - jeweils unterschiedliche Größe).
Nun aber noch ein Frage zum PageSetup-Vorschlag von Erich: seh ich das richtig, dass sich das nur beim Drucken auswirkt? Und nicht bei der Darstellung am Schrim?
Grüße
Franz
P.S.: Rückmeldung gibts bei mir immer...
AW: geht nicht ohne "Select" ?
30.09.2005 07:17:50
Hajo_Zi
Hallo Franz,
PageSetup wirkt nur beim Ausdruck.
Was hindert Dich daran mit Select Case zu arbeiten und den Blattnamen festzustellen?
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
Ha! Das ist ne gute Idee...
30.09.2005 07:22:15
Franz
Hallo Hajo,
ja, genau, das hört sich gut an, werd ich machen!!
Vielen Dank und Grüße
Franz
P.S.: Nicht so wichtig: auf diesen letzten Beitrag von Dir hab ich zweimal ne Mail-Benachrichtigung bekommen...?

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige