Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Druckbereich festlegen und aufheben verhindern

Druckbereich festlegen und aufheben verhindern
02.09.2008 12:23:00
Ben
Hallo
ch würde gerne per VBA verhindern, dass meine User den Druckbereich einer Datei verändern können. Dazu habe ich im Forum-Archiv folgenden Beitrag gefunden:
https://www.herber.de/forum/archiv/680to684/t683192.htm
Damit kann ich verhindern, dass im Menu Datei-Druckbereich "Druckbereich festlegen" gewählt werden kann und auch die Schaltfläche auf der Symbolleiste ist deaktiviert. In der Seitenumbruch-Vorschau kann der Druckbereich mittels verschieben der blauen Linien noch geändert werden. Wie kann man auch das verhindern?
Leider ist im obigen Beitrag die ID für "Druckbereich aufheben" nicht mehr erwähnt. Weiss jemand welche ID dafür verwendet werden muss?
Danke für Eure Hilfe.
Ben
Anzeige

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckbereich festlegen und aufheben verhindern
02.09.2008 12:29:00
David
Hi Ben,
zumindest deine letzte Frage kann ich dir beantworten:
Schau mal in die Betreff-Zeile des letzten Beitrages! ;-)
Bei dem Rest muss ich allerdings passen, vielleicht kann man ja die Seitenumbruch-Vorschau generell verhindern?!
Gruß
David
AW: Druckbereich festlegen und aufheben verhindern
02.09.2008 12:33:36
Ben
Danke David, die Betreff-Zeile habe ich voll übersehen...
Gruss
Ben
Anzeige
AW: Druckbereich festlegen und aufheben verhindern
02.09.2008 12:45:00
Ben
Hallo
Habe folgenden Code

Private Sub Workbook_Activate()
'Druckbereich ändern verhindern
Dim c
For Each c In Application.CommandBars.FindControls(ID:=364)
c.Enabled = False
'Druckbereich aufheben verhindern
Dim d
For Each d In Application.CommandBars.FindControls(ID:=1584)
d.Enabled = False
Next
End Sub



Private Sub Workbook_Deactivate()
Dim c
For Each c In Application.CommandBars.FindControls(ID:=364)
c.Enabled = True
Dim d
For Each d In Application.CommandBars.FindControls(ID:=1584)
d.Enabled = True
Next
End Sub


Druckbereich festlegen ist dadurch deaktiviert, nicht aber Druckbereich aufheben. Weiss jemand weshalb?
Danke, Gruss
Ben

Anzeige
AW: Druckbereich festlegen und aufheben verhindern
02.09.2008 12:59:53
Chris
Servus Ben,
zunächst mal fehlt jeweils in der ersten Schleife ein Next und 2. funktioniert das dann auch einwandfrei (zumindest in office 2003)

Private Sub Workbook_Activate()
'Druckbereich ändern verhindern
Dim c
For Each c In Application.CommandBars.FindControls(ID:=364)
c.Enabled = False
'Druckbereich aufheben verhindern
Next
Dim d
For Each d In Application.CommandBars.FindControls(ID:=1584)
d.Enabled = False
Next
End Sub



Private Sub Workbook_Deactivate()
Dim c
For Each c In Application.CommandBars.FindControls(ID:=364)
c.Enabled = True
Next
Dim d
For Each d In Application.CommandBars.FindControls(ID:=1584)
d.Enabled = True
Next
End Sub


Gruß
Chris

Anzeige
AW: Nachtrag
02.09.2008 13:21:00
Chris
Servus Ben,
hier noch wie man die komplette Seitenansicht ausschaltet (in ein allgemeines Modul)
Dim cb As CommandBar, cbc As CommandBarControl

Sub aus()
On Error Resume Next
For Each cb In CommandBars
Set cbc = cb.FindControl(ID:=109, Recursive:=True)
If Not cbc Is Nothing Then cbc.Enabled = False
Next
End Sub



Sub ein()
On Error Resume Next
For Each cb In CommandBars
Set cbc = cb.FindControl(ID:=109, Recursive:=True)
If Not cbc Is Nothing Then cbc.Enabled = True
Next
End Sub


Einzelmenüpunkte in der Seitenansicht sind meines Wissens nicht deaktivierbar mit VBA.
Gruß
Chris

Anzeige
AW: Druckbereich festlegen und aufheben verhindern
02.09.2008 13:49:00
Ben
Hallo Chris
Danke. Druckbereich festlegen und aufheben funktioniert nun. Die Seitenumbruchvorschau kann ich aber trotz deinem Code in einem neuen Modul noch immer anzeigen. Die Seitenansicht übrigens auch.
Gruss
Ben
AW: Druckbereich festlegen und aufheben verhindern
02.09.2008 14:09:20
Chris
Schau mal in die Bsp-Datei:
https://www.herber.de/bbs/user/55125.xls
Hast du die Makros auch aufgerufen?
Gruß
Chris
Anzeige
AW: Druckbereich festlegen und aufheben verhindern
02.09.2008 15:10:00
Ben
Mit Deiner Datei ist auch bei mir die Seitenansicht ausgeschaltet. Seltsamerweise kriege ich das nicht hin, auch wenn ich Dein Modul bei mir in einer Testdatei importiere. Hier ist diese Datei
https://www.herber.de/bbs/user/55128.xls
Liegt das ev. an Excel 2000?
Was ich aber eigentlich möchte, ist die Seitenumbruchvorschau verunmöglichen, denn in dieser Ansicht lässt sich der Druckbereich verändern und dies soll ja letztlich verhindert werden. Gibts auch dafür eine ID? Und, gibts eigentlich irgendwo ein Verzeichnis dieser ID's?
Gruss
Ben
Anzeige
AW: Druckbereich festlegen und aufheben verhindern
02.09.2008 15:21:24
Chris
Servus Ben,
du musst das wie in der Beispieldatei machen. Du brauchst alle 4 Makros, oder du musst über

Private Sub Workbook_Activate
Call aus
End Sub


bzw.


Private Sub Workbook_Deactivate
Call ein
End Sub


die Makros aufrufen. Wie kommst du denn an die Seitenumbruchvorschau, wenn nicht über Seitenansicht?
Ich hab mich damit noch nicht wirklich beschäftigt. Ist das ein eigener Menüpunkt ?
Gruß
Chris

Anzeige
AW: Druckbereich festlegen und aufheben verhindern
02.09.2008 15:41:00
Ben
OK. Seitenansicht ausschalten geht bei mir nun auch. Hatte nicht gemerkt, dass bei Arbeitsmappe auch noch ein Code vorhanden ist.
In die Seitenumbruchvorschau gelange ich über "Ansicht-Seitenumbruchvorschau".
Gruss
Ben
AW: Nachtrag
02.09.2008 15:38:06
Chris
Ok, hab's gefunden.
der war bei mir von haus aus deaktiviert.

Sub Deaktivieren()
Dim Menüpunkt As CommandBarControl
Dim Menü_Unterpunkt As CommandBarControl
With Application.CommandBars("Worksheet Menu Bar")
With .Controls("Ansicht")
.Enabled = True
On Error Resume Next
.Controls("Seitenumbruchvorschau").Enabled = False
End With
End With
End Sub


und


Sub Aktivieren()
Dim Menüpunkt As CommandBarControl
Dim Menü_Unterpunkt As CommandBarControl
With Application.CommandBars("Worksheet Menu Bar")
With .Controls("Ansicht")
.Enabled = True
On Error Resume Next
.Controls("Seitenumbruchvorschau").Enabled = True
End With
End With
End Sub


Die ID kenne ich auch nicht.
Gruß
Chris

Anzeige
AW: Nachtrag
02.09.2008 15:50:14
Ben
Wenn Du mir jetzt noch durchgeben könntest, wie ich Deinen Code genau einbinden muss (in Modul kopieren oder in "Diese Arbeitsmappe")?
Gruss
Ben
AW: Nachtrag
02.09.2008 16:09:51
Chris
Naja,
entweder in ein allgemeines Modul oder in DieseArbeitsmappe (is wurscht).
Du musst idie Codes dann halt über Workbook_Activate (Sub Deaktivieren) bzw. Workbook_Deactivate (Sub Aktivieren) mit Call Aktivieren bzw. Call Deaktivieren aufrufen. Diese stehen in DieseArbeitsmappe.
Gruß
Chris
Anzeige
AW: Nachtrag
02.09.2008 17:33:09
Ben
Also irgendwie komme ich nicht weiter. Sorry, aber ich bin halt noch immer ein Greenhorn in Sachen VBA. Kannst Du mal schauen, was hier nicht stimmt?
https://www.herber.de/bbs/user/55137.xls
Die Seitenumbruchvorschau ist nun über den Menupunkt "Ansicht" nicht mehr aktiv. Das ist gut. Ich habe mir für diese Ansicht aber ein Symbol in der Standar-Symbolleiste definiert. Damit lässt sich diese Seitenumbruchvorschau immer noch anwählen.
Zudem kann die Seitenansicht weder über die Symbolleiste noch über den Menupunkt in Datei nicht mehr gewählt werden, was ich jedoch zulassen möchte.
Danke.
Gruss
Ben
Anzeige
AW: Nachtrag
02.09.2008 18:21:10
Chris
Servus Ben,
also m.E. stimmt da alles. Die Seitenansicht funktioniert und der Druckbereich kann weder festgelegt noch aufgehoben werden und außerdem ist die Seitenumbruchvorschau deaktiviert.
Allerdings verstehe ich den Sinn sowieso nicht, da man ja auch über die Seitenansicht auf die Seitenumbruchvorschau kommt und genau das kann ich nicht abschalten, ausser ich schalte die Seitenansicht komplett aus.
Gruß
Chris
Anzeige
AW: Nachtrag
03.09.2008 12:03:00
Ben
Hallo Chris
Ja ich sehe das nun auch so. Ich habe nun zusätzlich auch noch die Seitenansicht und die Funktion "Seite einrichten" ausgeschaltet.
Vielen Dank für Deine Hilfe.
Gruss
Ben
Workbook_BeforePrint
03.09.2008 15:39:30
Beate
Hallo Ben,
ich würde einfach in einem Workbook_BeforePrint-Makro den Druckbereich definieren. Egal, was der User vorher verändert hat, wird es so jedenfalls vor Ausdruck bzw. Seitenvorschau wieder wie gewollt eingestellt.
Gruß,
Beate
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Druckbereich in Excel festlegen und verhindern, dass er geändert wird


Schritt-für-Schritt-Anleitung

Um den Druckbereich in Excel zu verwalten und zu verhindern, dass Benutzer ihn ändern, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:
    • Klicke mit der rechten Maustaste auf "VBAProject (DeinDateiname)".
    • Wähle "Einfügen" und dann "Modul".
  3. Füge den folgenden Code ein, um den Druckbereich festzulegen und die Seitenansicht auszublenden:
Private Sub Workbook_Activate()
    ' Druckbereich ändern verhindern
    Dim c
    For Each c In Application.CommandBars.FindControls(ID:=364)
        c.Enabled = False
    Next

    ' Druckbereich aufheben verhindern
    Dim d
    For Each d In Application.CommandBars.FindControls(ID:=1584)
        d.Enabled = False
    Next

    ' Seitenansicht ausschalten
    Dim cb As CommandBar, cbc As CommandBarControl
    For Each cb In CommandBars
        Set cbc = cb.FindControl(ID:=109, Recursive:=True)
        If Not cbc Is Nothing Then cbc.Enabled = False
    Next
End Sub

Private Sub Workbook_Deactivate()
    Dim c
    For Each c In Application.CommandBars.FindControls(ID:=364)
        c.Enabled = True
    Next
    Dim d
    For Each d In Application.CommandBars.FindControls(ID:=1584)
        d.Enabled = True
    Next
End Sub
  1. Speichere die Datei als Excel-Arbeitsmappe mit Makros (.xlsm).
  2. Teste die Funktion, indem Du die Datei schließt und erneut öffnest.

Häufige Fehler und Lösungen

  • Druckbereich aufheben funktioniert nicht: Stelle sicher, dass der Code korrekt kopiert wurde. Achte darauf, dass keine Fehler im VBA-Code vorhanden sind.
  • Seitenansicht bleibt aktiv: Überprüfe, ob der Code für die Seitenansicht korrekt ausgeführt wird. Möglicherweise musst Du die Makros manuell aktivieren.
  • Excel blauer Rahmen Druckbereich: Wenn der blaue Rahmen angezeigt wird, bedeutet das, dass der Druckbereich festgelegt ist. Du kannst ihn über die Druckbereich-Funktion in der Seitenlayout-Registerkarte ändern.

Alternative Methoden

Eine alternative Methode, um den Druckbereich in Excel zu verwalten, ist die Verwendung von Workbook_BeforePrint. Füge folgenden Code in das Modul „Diese Arbeitsmappe“ ein:

Private Sub Workbook_BeforePrint()
    ' Druckbereich festlegen
    ActiveSheet.PageSetup.PrintArea = "$A$1:$D$20" ' Beispielbereich
End Sub

Diese Methode stellt sicher, dass der Druckbereich vor dem Drucken festgelegt wird, unabhängig von Änderungen, die der Benutzer vorgenommen hat.


Praktische Beispiele

  • Druckbereich ausblenden: Um den Druckbereich zu entfernen, kannst Du die folgende Zeile in einen VBA-Code einfügen:
ActiveSheet.PageSetup.PrintArea = ""
  • Druckbereich festlegen mit Tastenkombination: Du kannst eine Tastenkombination definieren, um den Druckbereich schnell festzulegen. Gehe dazu zu "Entwicklertools" > "Makros" und weise eine Tastenkombination zu.

Tipps für Profis

  • Verwende den VBA-Editor gründlich: Mache Dich mit den verschiedenen ID-Nummern vertraut, die für Steuerungen in der Excel-Oberfläche verwendet werden. Ein Verzeichnis dieser IDs kann hilfreich sein.
  • Makros sichern: Stelle sicher, dass Du regelmäßig Sicherungskopien Deiner Makros machst, bevor Du Änderungen vornimmst.
  • Schulung von Benutzern: Informiere andere Benutzer über die Funktionsweise der Druckbereichsverwaltung, um Missverständnisse zu vermeiden.

FAQ: Häufige Fragen

1. Warum funktioniert das Entfernen des Druckbereichs nicht?
Das Entfernen des Druckbereichs könnte durch andere Einstellungen oder Makros in Deiner Arbeitsmappe blockiert werden. Überprüfe alle aktiven Makros.

2. Wie kann ich den Druckbereich dauerhaft festlegen?
Verwende das Workbook_BeforePrint-Ereignis, um den Druckbereich jedes Mal festzulegen, wenn der Benutzer druckt.

3. Hat dieser Prozess Auswirkungen auf die Druckansicht?
Ja, wenn Du die Druckansicht in Excel ausschaltest, wird auch der Druckbereich nicht angezeigt. Du kannst dies durch die Verwendung von VBA steuern.

4. Gibt es eine Tastenkombination, um den Druckbereich schnell zu ändern?
Du kannst eine benutzerdefinierte Tastenkombination für Makros erstellen, die den Druckbereich festlegt oder ändert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige