Microsoft Excel

Herbers Excel/VBA-Archiv

dynamischer Druckbereich -> überschreiben verhindern

Betrifft: dynamischer Druckbereich -> überschreiben verhindern von: Wolfango
Geschrieben am: 04.02.2020 17:45:41

Hallo Experten,

ich habe über die Vergabe von Namen (und der Funktion INDIREKT) einen dynamischen Druckbereich erstellt.
Nun lässt sich aber (leider) trotz geschützten Arbeitsblatts der Befehl " Seitenlayout" "Druckbereich" "Druckbereich festlegen" aufrufen und schon ist der Druckbereich neu definiert und der Name mit INDIREKT etc. überschrieben.
Wie lässt sich das verhindern?
Gibt es eine Möglichkeit den Befehl zu deaktivieren?
oder andere Möglichkeiten?

Danke und Gruß,
Wo.

Betrifft: AW: standardmäßig ist das nicht möglich ...
von: neopa C
Geschrieben am: 04.02.2020 18:53:11

Hallo Wolfgang,

... das kann man möglicherweise nur mit VBA lösen. Aber aus VBA halte ich mich außen vor.

Hier aber noch (m)eine Anmerkung zur Definition Deines dyn. Druckbereich mittels INDIREKT() über einen benannte Formel. Anstelle der volatilen Funktion INDIREKT() nutze ich dafür meist nur die nicht volatilen Funktion INDEX(), zumal diese für mich einfacher wie auch flexibler zu erstellen ist.

Gruß Werner
.. , - ...

Betrifft: AW: dynamischer Druckbereich -> überschreiben verhindern
von: onur
Geschrieben am: 04.02.2020 22:45:54

"ich habe über die Vergabe von Namen (und der Funktion INDIREKT) einen dynamischen Druckbereich erstellt. " - und wie genau?

Betrifft: AW: dynamischer Druckb -> überschreiben verhindern
von: Wolfango
Geschrieben am: 05.02.2020 11:15:08

"und wie genau?"

…ich habe eine Formel gebastelt, welche die Zellbezüge des gewünschten Druckbereichs ausgibt, nachdem in einer anderen Zelle zuvor die gewünschte Kalenderwoche eingegeben wird.
(siehe Demobeispiel: KW wird eingegeben in M1. Daraus resultierender Bereich wird ermittelt in M2.)
https://www.herber.de/bbs/user/134989.xlsx
Im Namensmanager definiere ich dann den Druckbereich (dynamisch) über die Festlegung des Druckbereichs mit „=INDIREKT(Test!$M$2)“.
Und - wie schon beschrieben - es lässt sich leider nicht sperren, dass dieser Druckbereich dann (versehentlich) überschrieben wird.
Deshalb die Frage ob sich die Befehle zum Ändern des Druckbereichs (via VBA?) deaktivieren lassen.
Danke für’s Denken und Gruß,
Wo

Betrifft: AW: dynamischer Druckb -> überschreiben verhindern
von: onur
Geschrieben am: 05.02.2020 11:52:14

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim dr
    dr = Sheets("Test").Range("M2")
    ActiveSheet.PageSetup.PrintArea = Range(dr).Address
End Sub


Betrifft: AW: dynamischer Druckb -> überschreiben verhindern
von: Wolfango
Geschrieben am: 06.02.2020 15:21:09

Das funktioniert großartig!! Vielen Dank dafür!!!

Trotzdem noch ein kleiner Zusatzwunsch (falls machbar):
Der VBA-Code sorgt dafür, dass immer der gewünschte Bereich ausgedruckt wird...soweit perfekt.
Die Seitenansicht/Druckvorschau zeigt aber immer den letzten/vorangegangenen Druckbereich an und nicht den aktuell gewünschten (vermutlich weil der VBA-Code erst greift, wenn tatsächlich gedruckt wird).
Lässt sich der Code so anpassen, dass bereits die Druckvorschau korrekt angezeigt wird?

Gruß, Wo

Betrifft: AW: dynamischer Druckb -> überschreiben verhindern
von: onur
Geschrieben am: 06.02.2020 23:15:02

Umständlich.
Man könnte den Code z.B. in Selection_Change oder Change einbauen, dann wird der Druckbereich bei jedem Klick in eine Zelle bzw Änderung dieser zurückgesetzt - aber kostet halt Rechenleistung.
Oder du lässt die Leute nur noch über einen Button drucken, von dem aus vorher das Makro aufgerufen wird.

Betrifft: AW: dynamischer Druckb -> überschreiben verhindern
von: Wolfango
Geschrieben am: 07.02.2020 10:10:30

...ok....hätte auch nur der Perfektion gedient.
Die beabsichtigte Hauptfunktion ist gegeben und hilft mir sehr weiter!!
Vielen Dank und Gruß!!

Betrifft: AW: dynamischer Druckb -> überschreiben verhindern
von: onur
Geschrieben am: 07.02.2020 11:44:10

Es gibt zwar noch so etwas:
https://www.herber.de/forum/archiv/1004to1008/1006724_Druckbereich_festlegen_und_aufheben_verhindern.html
Aber bei mir klappt es nicht.
Die Buttons werden zwar deaktiviert, aber sobald ich auf irgend eine Zelle klicke, sind sie wieder aktiv.

Beiträge aus dem Excel-Forum zum Thema "dynamischer Druckbereich -> überschreiben verhindern"