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

Sperren von "Seite einrichten"

Sperren von "Seite einrichten"
12.06.2007 22:33:17
"Seite
Guten Abend
Mein Problem ist, ich möchte eine Datei verschicken, in der ich aber den Zugriff auf den Task:
=Datei,Seite einrichten= bzw =Seitenansicht - Layout= sperren möchte.
Meine häufig wechselnden Empfänger sollen mir nur diverse Daten ergänzen, aber nicht
auf die Idee kommen, die Druckoptionen für die Seite zu ändern.
Wie geht so etwas ?
Über Antworten würde ich mich freuen.
Danke,
Hubert

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sperren von "Seite einrichten"
12.06.2007 23:34:00
"Seite
Hallo
man kann per VBA dem Anwender die Befehls- und Menüleisten verändern, dh. man könnte auch die entsprechenden Schaltflächen entfernen, so daß er die Funktionen nicht mehr ausführen kann.
das dürfte aber etwas aufwendig zu programmieren sein, vorallem weil du sicherstellen mußt, daß nach Schließen deiner Datei alle diese Funktionen wieder genauso zur verfügung stehen wie vorher, auch im Falle eines Fehlers oder Absturzes, sonst bekommst du Ärger mit deinen Kollegen.
Einfacher scheint mir zu sein, wenn du in das Modul "DieseArbeismappe" folgendes eventgesteuerte Makro reinschreibst:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
'... hier dann dein Code, mit dem du die Seiteneinstellungen vornimmst
End Sub


dieses Makro läuft immer automatisch ab, sobald der Druck angestoßen wird.
wenn du jetzt in diesem Makro die Seiteneinstellungen setzt, können die Kollegen verstellen was sie wollen, beim Druck sind wieder deine Original-Werte drin.
Falls du nicht weißt, wie die Seitenenstellungen per VBA funktioniert, lass einfach mal den Recorder mitlaufen, da wird alles aufgezeichnet.
Gruß, Daniel

Anzeige
AW: Sperren von "Seite einrichten"
13.06.2007 00:04:01
"Seite
Hallo Daniel
Danke für Deine schnelle Antwort.
Habe es direkt mal ausprobiert. Die Seiteneinstellungen habe ich
mir, wie Du es empfohlen hast, aus dem Recorder geholt.
Das ganze funktioniert einfach super. Genau das, was ich mir
vorgestellt hatte. Bei Druck bzw Item Seitenlayout geht alles
wieder in die Urversion zurück.
Nochmals Danke und schönen Abend noch
Hubert

AW: Sperren von "Seite einrichten"
13.06.2007 06:37:18
"Seite
Hallo Hubert,
und was ist falls jemand die Makros nicht aktiviert?

AW: Sperren von "Seite einrichten"
13.06.2007 22:00:00
"Seite
Hi
Sogar mit aktiviertem Makro lassen sich die Seiteneinstellungen verändern, wenn man im Druckmenü VORSCHAU anstatt DRUCKEN wählt.
In der Druckvorschau kann man auch nochmal die Seiteneinstellungen veränderen, und wenn dann aus der Druckvorschau gedruckt wird, startet das Befor_Print-Makro nicht nochmal (ist ja schon vor der Vorschau gelaufen)
Spielt aber alles keine Rolle, wenn die Kollgen glauben, eine andere Einstellung sei besser, sollen sie sie doch verändern.
Wenn Hubert dann die Datei zurückbekommt und öffnet, wird er die Makros sicherlich aktiveren, und dann hat er automatisch wieder die richtigen Seiteneinstellungen, egal was die lieben Kollegen verstellt haben.
Bei der anderen Methode (deaktivieren der Menüfunktion Seiteneinstelungen) wäre es tatsächlich ein Problem, wenn die Makros vom Anwender deaktiviert werden, wäre es ja wieder möglich, die Einstellungen zu ändern.
Gruß, Daniel

Anzeige
AW: Sperren von "Seite einrichten"
15.06.2007 10:07:35
"Seite
Hallo Hajo, hallo Daniel
Ich sehe, das Thema ist eigentlich nicht so einfach.
Es gibt da scheinbar vielfältige Möglichkeiten, an die ich
überhaupt nicht gedacht habe, z.B. das Deaktivieren von Makros.
In meinem speziellen Fall komme ich allerdings mit dem Tipp von Daniel
weiter. Denn es stimmt, die anderen Kollegen können von mir aus
drucken wie sie wollen, aber wenn ich die Datei zurückbekomme, arbeite
ich MIT den Makros und dann bin ich wieder clean.
Dabei fällt mir aber ein, wenn die Datei demnächst vielleicht über mehr als
1 Tabellenblatt geht, z.b. 3 Blätter, und jedes Blatt muss eine ganz andere
Druckeinstellung haben, wie lege ich das denn in VBA fest.
Dort steht doch in Before_print nur 1ne Einstellung.
Das würde mich jetzt doch noch interessieren, da ich bestimmt in absehbarer
Zeit auf mehr als 1 Tab komme.
Danke euch schon jetzt
Hubert

Anzeige
AW: Sperren von "Seite einrichten"
15.06.2007 10:14:57
"Seite
HAllo Hubert,
ich gehe mal davon aus das nur die Aktive Tabelle gedruckt wird.
Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Select Case ActiveSheet.Name
Case "Tabelle1"
Case "Tabelle2"
End Select
End Sub


a href="http://Hajo-Excel.de/" target="_blank" title="Hajo's Excelseiten">Gruß Hajo

AW: Sperren von "Seite einrichten"
15.06.2007 10:55:44
"Seite
Hallo Hajo
Danke für die Antwort.
Ist eine gute Idee. Habe ich gerade ausprobiert.
Wenn ich Tabelle1 drucke, kommen auch die richtigen Einstellungen
dafür und wenn ich dann Tabelle2 drucke, kommen auch dafür die
richtigen Einstellungen.
Wenn ich aber mit Shift die Tabelle1 und Tabelle2 zusammen auswähle,
und dann drucken anklicke, dann druckt er mir Tabelle1 mit den richtigen,
zurückgesetzten Einstellungen und Tabelle2 mit den zzt. falschen Einstellungen
D.h. er setzt dann die Tabelle2 nicht zurück.
Nur wenn ich wie am Anfang gesagt, jede Tabelle einzeln drucke.
Gruß
Hubert

Anzeige
AW: Sperren von "Seite einrichten"
15.06.2007 11:00:30
"Seite
Hallo Hubert,
ich hate in meinem Beitrag auch geschrieben
"ich gehe mal davon aus das nur die Aktive Tabelle gedruckt wird"
Before Print wird nur einmal ausgeführt. Bei Deiner Verfahren must Du immer ale Makros für alle Tabellen ausführen.
Deine Code habe ich Leider nicht gefunden.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
With Worksheets("Tabelle1")
End With
With Worksheets("Tabelle2")
End With
End Sub


Gruß Hajo

Anzeige
AW: Sperren von "Seite einrichten"
15.06.2007 11:56:57
"Seite
Hallo Hajo
ich hab das, was du jetzt gesagt hast, mal eingesetzt,
aber im Moment komm ich garnicht mehr klar.
Der Code aus meiner Beispiel-Datei lautet so.
Den hab ich mit dem Recorder aufgezeichnet und dann
in Before_print eingesetzt und ergänzt mit deinem obigen Tipp:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
With Worksheets("Tabelle1")
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = "$B$2:$G$10"
With ActiveSheet.PageSetup
.LeftHeader = "&A"
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(1.77165354330709)
.RightMargin = Application.InchesToPoints(1.77165354330709)
.TopMargin = Application.InchesToPoints(1.96850393700787)
.BottomMargin = Application.InchesToPoints(1.96850393700787)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = True
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 50
End With
End With
With Worksheets("Tabelle2")
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = "Beispieltext für Tabelle2"
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = True
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = True
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
End With
End With
End Sub


Gruß
Hubert

Anzeige
AW: Sperren von "Seite einrichten"
15.06.2007 12:00:51
"Seite
Hallo Hubert,
Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
With Worksheets("Tabelle1")
With .PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
.PageSetup.PrintArea = "$B$2:$G$10"
With ActiveSheet.PageSetup
.LeftHeader = "&A"
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(1.77165354330709)
.RightMargin = Application.InchesToPoints(1.77165354330709)
.TopMargin = Application.InchesToPoints(1.96850393700787)
.BottomMargin = Application.InchesToPoints(1.96850393700787)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = True
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 50
End With
End With
With Worksheets("Tabelle2")
With .PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = "Beispieltext für Tabelle2"
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = True
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = True
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
End With
End With
End Sub


Gruß Hajo

Anzeige
AW: Sperren von "Seite einrichten"
15.06.2007 14:01:53
"Seite
Hallo Hajo
Werde mir das jetzt mal in Ruhe ansehen, einbauen
und ausprobieren.
Komme aber erst heute abend dazu, das zu machen.
Melde mich dann aber umgehend mit Erfolg oder Misserfolg.
Danke,
Hubert

AW: Sperren von "Seite einrichten"
15.06.2007 20:12:00
"Seite
Hallo Hajo
habe mir deinen Code angeschaut und gesehen, dass du jeweils
bei meinen Stellen mit "ActiveSheet" dieses weggenommen hast.
Eigentlich auch klar.
Als ich dann doch noch Probleme hatte, habe ich noch 2 weitere
Stellen gefunden, wo ich das "ActiveSheet.PageSetup" in ".PageSetup"
geändert habe.
Und jetzt funktioniert das genau so, wie ich das auch gerne haben wollte.
Hajo, vielen Dank für Deine Hilfe.
Erstens hab ich meine Datei jetzt Top in Ordnung und zweitens hab ich
wieder etwas dazu gelernt.
Excel und VBA ist ja doch verdammt vielfältig.
Schönes Wochenende
Hubert
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige