Hallo zusammen,
eine Frage hätte ich noch zu Calc. Ich hoffe ich schaffe es verständlich zu erklären. Die Kollegen hat in Exel eine Tabelle die sehr viele Spalten hat. Es handelt sich um eine Art Zeitplan für das ganze Jahr. In den Spalten stehen zunächst ein paar Daten:
Kolonne: Projekt Baustelle Auftragssumme
Das sind die Spalten A-D. Ab Spalte E kommen die Kalenderwochen 1-53.
Die Zeilen sind bis Zeile-Nr. 20 mit Daten gefüllt. Dann erfolgt in Zeile 24 ein Seitenumbruch. Danach kommt eine fast identische Tabelle die lediglich andere Bezeichnungen (Spalte A-D) enthält und bis Zeile 53 mit Daten gefüllt ist. Wenn ich nun meinen Druckbereich definiere von A1 bis U53 klappt der Ausdruck wunderbar. Auf der erste Seite kommt die obere Tabelle bis zur KW 17 (Spalte U) und auf der zweiten Seite kommt die untere Tabelle ebenfalls bis zur KW 17 (Spalte U) ohne das der Anwender darauf achten muss beim Ausdruck Seite 1-2 zu aktivieren. Soweit alles in Ordnung.
Die Tabelle wird nun jedoch weiter geführt d.h. Ende Februar werden die Spalten E-I (KW 1 - KW 4) entfernt und dabei "wandert" der definierte Druckbereich leider auch mit nach links und ist nun mit: $A$1:$P$53 definiert. Dieses "nachrücken" des Druckbereiches würde ich gerne verhindern das er nach dem löschen auf $A$1:$U$53 bleibt.
Geht so etwas?
Viele Grüße
pixel24
relativer Durckbereich
Moderator: Moderatoren
Re: relativer Durckbereich
das kam evtl. nicht deutlich raus Aber der Spalte E beginnen die besagten Kalenderwochen. Diese enthalten in der Tabelle selbst keine Daten und werden auch nie welche enthalen. Sondern werden lediglich ausgedruckt damit in den Kästchen (Zellen) auf dem Ausdruck Kreuze rein gemacht werden können.
Dieser Ausdruck enthält niemnals die KW's die bereits vergangen sind somit werden diese Spalten immer entfernt (Monatsweise).
Der anfänglich definierte Druckbereich (bis Spalte) U enthält nun neue KW's. Genau das tut er aber nicht da der Druckbereich eben nach links mit wandert.
So verständlich worauf ich raus will?
Dieser Ausdruck enthält niemnals die KW's die bereits vergangen sind somit werden diese Spalten immer entfernt (Monatsweise).
Der anfänglich definierte Druckbereich (bis Spalte) U enthält nun neue KW's. Genau das tut er aber nicht da der Druckbereich eben nach links mit wandert.
So verständlich worauf ich raus will?
Re: relativer Durckbereich
Also mir nicht, da ich nicht verstehe warum Du absichtlich Spalten löscht die ohnehin leer sind, zumal das ja nicht einmal 'bedientechnisch' eine elegante Lösung ist.So verständlich worauf ich raus will?
Warum beispielsweise belegst Du nicht E1 mit einer Gültigkeitsprüfung und übergibst eine Liste aller möglichen Kalenderwochen und läßt die Auswahliste anzeigen und läßt dann F1 und folgende Zellen mittels Formeln berechen?
Oder warum verwendest Du kein Makro was vor dem Drucken den Druckbereich anpasst?
Gruß
Stephan
Re: relativer Durckbereich
Hier die Datei dann ist es evtl. klarerStephan hat geschrieben:Also mir nicht, da ich nicht verstehe warum Du absichtlich Spalten löscht die ohnehin leer sind, zumal das ja nicht einmal 'bedientechnisch' eine elegante Lösung ist.
http://www.dreampixel.de/files/test.ods
Das ist jertzt ein alter Stand zu erkennen an den bereits vergangenen Monaten. Diese wurde wie gesagt ausgedruckt d.h. die obere Tabelle auf Seite 1 die untere auf Seite 2. Sind die Monate vorbei sind diese Daten nicht mehr relevant d.h. vorne in den Zeilen werden die Auftragsnamen überschrieben und die Spalten mit den bereits vergangenen KW's werden gelöscht
Das verstehe ich jetzt ehrlich gesagt nichtStephan hat geschrieben:Warum beispielsweise belegst Du nicht E1 mit einer Gültigkeitsprüfung und übergibst eine Liste aller möglichen Kalenderwochen und läßt die Auswahliste anzeigen und läßt dann F1 und folgende Zellen mittels Formeln berechen?
Oder warum verwendest Du kein Makro was vor dem Drucken den Druckbereich anpasst?
Gruß
Stephan[/quote]
Re: relativer Durckbereich
zu:Das verstehe ich jetzt ehrlich gesagt nicht
Du nimmst eine Zelle und richtest eine Gültigkeitsprüfung ein mit Vorgabe einer Liste mit den Einträgen 1. Woche 2008 bis 52. Woche 2008 (oder noch weitere Wochen/Jahre) und kannst dfann auswählen und mittels Formeln die Anzeige der Wochen in den Zelle wo derzeitig statische Wochennummer stehen (Zeile 4 in Deiner Datei) berechnen, ginge prima wenn es stimmen würde das:Warum beispielsweise belegst Du nicht E1 mit einer Gültigkeitsprüfung und übergibst eine Liste aller möglichen Kalenderwochen und läßt die Auswahliste anzeigen und läßt dann F1 und folgende Zellen mittels Formeln berechen?
Aber der Spalte E beginnen die besagten Kalenderwochen. Diese enthalten in der Tabelle selbst keine Daten und werden auch nie welche enthalen.
was ja nun ganz offensichtrlich nicht stimmt - oder sind die "X" in der Beispieldatei etwa keine Daten?
Außerdem gibt es oberhalb der Wochennummernzellen zusammengefasste Zellen wovon mir auch nichts bekannt war
zu:
So wie es dasteht, starte ein Makro bevor Du mit dem Drucken beginnst, was den Druckbereich anpasst, praktischerweise starte also ein Makro was in einem Abwasch den Druckbereich anpasst und druckt, meinethalben über eine Schaltfläche in der Tabelle. Das Makro kannst Du aufzeichnen, bei mir gibt das:Oder warum verwendest Du kein Makro was vor dem Drucken den Druckbereich anpasst?
Code: Alles auswählen
sub Main()
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1() as new com.sun.star.beans.PropertyValue
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "PrintArea"
args2(0).Value = "$A$1:$Z$53"
args2(1).Name = "PrintRepeatRow"
args2(1).Value = ""
args2(2).Name = "PrintRepeatCol"
args2(2).Value = ""
dispatcher.executeDispatch(document, ".uno:ChangePrintArea", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args1())
end sub
Gruß
Stephan