Makro zum drucken, dass den Druckbereich dynamisch auswählt

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Makro zum drucken, dass den Druckbereich dynamisch auswählt

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von AndiO » Fr, 29.11.2013 12:07

Hallo,

ich hab jetzt echt lange rum probiert, ständig kommen aber irgend welche Fehler. Daher starte ich noch einen Versuch.

Ich hab versucht, die beiden Lösungen zusammen zu bringen. Die Idee war, dass ich den zweiten Vorschlag als Grundlage nehme. Anstatt, dass man nun in die Kopfzeile klicken muss, um die Daten für den Printbereich bzw. den PDF-Namen auszulesen, wollte ich es mit den Zusatzinformationen versuchen, wie oben beschrieben:
F3K Total hat geschrieben:
  • Auf dem Reiter Allgemein der Eigenschaften der Buttons findest Du unten Zusatzinformation.
  • Trage hier auf jedem Drucken-Button den jeweiligen Druckbereich z.B. A1:E5
  • und auf jedem PDF-Button den jeweiligen Druckbereich z.B. A1:E5,gefolgt von einem , (Komma) und dann den Dateinamen ein:
    tag.png
Nur welche Stellen muss ich da austauschen?
Allerdings möchte ich nicht den tatsächlichen Druckbereich bzw. den PDF-Namen dort eintragen, sondern hier eben auf die entsprechende Zelle verweisen, wo dieser Wert drin steht, aber selbst das hat nicht funktioniert (ich habe unter Zusatzinformationen dann E2 bzw. D2 eingetragen).

Wäre schön, wenn mir doch noch jemand weiter hilft, ich habe nämlich gemerkt, dass Makros und ich wohl keine Freunde mehr werden :)

Vielen Dank!

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von balu » Do, 14.11.2013 12:37

Hallo Andi,

ich versteh hier mittlerweile gar nix mehr. Und das schon mal allein wegen der Tatsache das deine Beispieldatei keine Übereinstimmung mit deinem letzten Screenshot hat.

Erschwerend kommt hinzu das Du hier immer von Formularen sprichst, das ein bestimmter Zellbereich gedruckt werden soll, aber nirgends ist wirklich was davon zu sehen was für Daten sich in den Zellbereichen befindet. Das einzige was man zu gesichte bekommt, sind die Titel *Blattnummer*, *Benutzer1* und *Benutzer2*. Das mit den Dateinamen etc. lassen wir mal aussen vor.

Das alles ergibt zumindest für mich alles kein Sinn, da die "Formulare" absolut ohne leben sind, sie sind also Tot. Wie soll man dir eventuell gescheit helfen können, wenn wir hier es mit etwas leblosen zu tun haben?

Ich sehe auch keinen Sinn darin, aus dem Blatt mit den "Formularen", immer nur so einen winzig kleinen Bereich auszudrucken wollen. Und das wahrscheinlich auch noch auf DIN-A4, so etwas nenn ich Verschwendung ;-).

Aber Halt, Stop!!
Mir ist da grad eben in deinem Code etwas aufgefallen, was mich stutzig macht.

Code: Alles auswählen

        Dim aDruckbereich(0)
        oCalc = thisComponent
        osheets = oCalc.Sheets
        'vorhandene Druckbereiche löschen
        for i = 0 to osheets.count - 1
            osheet = oSheets(i)
            osheet.setPrintAreas(Array())
        next i
        osheet = thisComponent.currentcontroller.activesheet
[...]
Du hast also in der richtigen Datei mehrere Tabellenblätter mit Druckbereichen. Und diese löscht Du bevor das Aktive Blatt einen neuen Druckbereich zugeordnet bekommt um es anschließend als PDF auszudrucken. Jetzt versteh ich gar nix mehr. Was verbirgt sich in den anderen Tabellenblättern? Sollen diese auch gedruckt werden?


Ich finde es ist an der Zeit das Du endlich mal mit richtigen Fakten daherkommst.
Mach eine neue und gescheite Beispieldatei aus der man ersehen kann um was es wirklich geht. Ich will das einfach nicht glauben, das nur die paar Zellen aus dem einen Tabellenblatt mit den *Formularen* ausgedruckt werden sollen. Und wenn ja, was für Daten stehen da drin?

Falls es sich um Daten handelt die nicht für die Öffentlichkeit bestimmt sind, dann ersetze die durch andere, aber so das wir endlich verstehen was angesagt ist.

Erzähl mal mehr von der Datei, um was geht es da?



Es grüßt ein total verwirrter :roll:
balu

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von F3K Total » Mi, 13.11.2013 16:47

Ein Ansatz wäre, pro Formular ein Tabellenblatt zu verwenden. Dann ist es auch mit den Makros deutlich einfacher.
R

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von AndiO » Mi, 13.11.2013 12:44

ja, so ist es manchmal :)

Ich kenne mich halt mit vielem aus, vor allem in Excel, aber eben nicht bei Makros und genau das Thema ist bei OpenOffice auch noch grundlegend anders. Mit einer Datenbank könnte ich es lösen aber dann kann der Kollege selber daran nichts mehr ändern, denn damit kennt er sich halt nicht aus, ein Teufelskreis :)

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von Karolus » Mi, 13.11.2013 12:11

Hallo

Das ist blöd, der Kollege möchte etwas haben womit er sich nicht auskennt, und du möchtest es auf eine Weise lösen wo du dich nicht auskennst.... 8)

Karolus

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von AndiO » Mi, 13.11.2013 11:42

Danke für den Tip, aber es soll halt genau so wie beschrieben umgesetzt werden. Hintergrund ist, dass ich das für einen Bekannten machen soll, der sich eben nur damit auskennt und das ganze vereinfachen möchte. Ich selber würde das Ganze eher als Datenbank erstellen, dann hätte ich alle Freiheiten, aber der Kollege kennt sich damit eben nicht aus :)

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von Karolus » Mi, 13.11.2013 10:36

Hallo

Ich glaube, hier wäre das übliche Vorgehen: ein Serienbriefdokument in Wrter mit einem Tabellendokument in Normalform als DatenQuelle ( d.h. du benötigst in Calc keine hunderte vorstrukturierte und formatierte Bereiche ).

Damit kannst du die Aufgabe sinnvoll alleine lösen.

Karolus

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von AndiO » Mi, 13.11.2013 09:41

F3K Total hat geschrieben: (2) dann beschäftige dich damit, lerne es, es gibt genügend Informationsquellen im Internet.
(3) bislang hast DU noch nichts zur Lösung beigetragen.
OK, ich dachte, das hier wäre so eine Quelle und ich könnte es mit dieser Hilfe lösen und leider kann ich es nicht selber lösen denn ich weiß ja eben nicht, wie es geht und ob es überhaupt geht? Denn darüber habe ich bisher noch überhaupt nichts gefunden und ich habe schon einiges durchsucht...

Und im übrigen habe ich ja kein leeres Blatt hier eingestellt sondern hatte schon etwas gefunden, das aber nicht so ganz richtig war (siehe erster Thread) - ich habe also schon gesucht, und ehrlich gesagt auch ziemlich lange...

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von F3K Total » Di, 12.11.2013 21:51

AndiO hat geschrieben:Ich weiß, ist sicher etwas nervig (1), aber Makros sind nicht eben mein Spezialgebiet(2) und ich(3) möchte es doch gerne lösen können.
(1) Genau!
(2) dann beschäftige dich damit, lerne es, es gibt genügend Informationsquellen im Internet.
(3) bislang hast DU noch nichts zur Lösung beigetragen.
R

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von AndiO » Di, 12.11.2013 18:44

Hallo,

also, erstmal vielen Dank für die bisherige Hilfe!!!

Leider passt es immer noch nicht so ganz, wobei es meinem Wunsch immer näher kommt :)

Ich versuche nochmal, die Sache zu beschreiben:
  • Die Formulare sind natürlich viel umfangreicher und ich kann die Felder nicht so anordnen wie im Beispiel, also Spalte für Spalte - ist das denn wichtig?
  • Das man in eine "Kopfzeile" klicken muss ist kompliziert (nicht für mich, aber für andere :) ). Kann man es so machen, dass es reicht, irgendwo im Formular hinzuklicken?
  • Da es mindestens 100 Formulare untereinander sind, sind die Buttons oben etwas umständlich. Aber wenn ich es richtig ausprobiert habe, kann ich sie ja einfach in jedes Formular kopieren, oder spricht was dagegen? (technisch gesehen :) )
  • Am liebsten wäre mir, wenn das Makro anhand "der Lage" des Buttons erkennt, welches Formular ausgedruckt werden soll, dann wäre auch das Problem mit dem Cursor in der Kopfzeile gelöst. Da liegt - glaube ich - aber wohl das größte Problem, denn ich hab noch nirgends etwas gefunden, wie ich in einem Makro einen relativen Pfad angeben kann. Zur Verdeutlichung hier mal ein Bild
    soll-soll-gedruckt-werden.jpg
    soll-soll-gedruckt-werden.jpg (45.75 KiB) 3931 mal betrachtet
Und jetzt noch zwei "Kleinigkeiten" :)
  1. Wie kann ich den Tabellennamen auslesen? Die Formel, die Du in D2 geschrieben hast, liest jetzt ja schon super auch die Zeit und das Datum aus, als letztes bräuchte ich aber noch den Namen des Tabellenblatts.
  2. Ich möchte die PDFs in einem extra Ordner speichern, wo kann ich den passenden Pfad angeben?
So, das sind erstmal meine aktuellen Wünsche :) Ich weiß, ist sicher etwas nervig, aber Makros sind nicht eben mein Spezialgebiet und ich möchte es doch gerne lösen können.

Grüße

Andi

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von F3K Total » Di, 05.11.2013 19:50

Hi,
der Aufbau deiner Tabelle ist nicht so gut, ich habe mal eine Vorschlag gemacht, wie das Ganze funktionieren könnte.
Grundsätzlich sollten Daten zu einem Thema entweder in einer Zeile oder in einer Spalte stehen.
Klicke in eine Kopfzeile (die mit dem Dateinamen) um die Tabelle, die gedruckt werden soll, zu markieren, und dann auf Drucken/PDF.
Die PDF landet im gleichen Ordner wie die .ods Datei.

Gruß R
Dateianhänge
testdateiF3K.ods
(13.12 KiB) 199-mal heruntergeladen

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von AndiO » Di, 05.11.2013 11:02

oh man, wie peinlich :? aber jetzt habe selbst ich es gesehen :)
testdatei.ods
(10.54 KiB) 166-mal heruntergeladen
Ich hab mal eine kleine Datei geschrieben, damit es übersichtlicher bleibt. Hier kurz ein paar Infos dazu:
  • Die Formulare gehen von A1 bis D3, A4 bis D6 usw.
  • Der Druckbereich soll entsprechend über diese Zellen gehen, eintragen wollte ich diesen in F2, F5 etc., allerdings sollte dieser dann auch automatisch ausgelesen werden - dafür kenne ich aber keine Formel.
  • In Zelle F1, F4 etc. steht der Dateiname für die PDF-Datei. Hier habe ich auch noch zwei Probleme:
    1. Ich möchte Datum und Uhrzeit einfügen. Diese lese ich in F3, F6 etc. aus. Bei der Uhrzeit fehlen mir noch die Sekunden und im Dateinamen wird das ganze als Zahl umgewandelt, was ich natürlich nicht möchte, denn so kann man es ja nicht mehr lesen.
    2. Es soll auch der Name des Tabellenblatts eingetragen werden, hier also Tabelle1. Diesen würde ich z.B. in Zelle H3, H6 etc. einfügen und dann in F1, F4 etc. verknüpfen.
Warum überhaupt das ganze so kompliziert?

Die Formulare sind natürlich viel umfangreicher. Ausserdem sind es nicht nur 10 sondern 100 und ggf. müssen noch ein paar angefügt werden, so dass hier wieder individuelle Anpassungen notwendig wären was natürlich zu Fehlern führen kann.

Wäre schön, wenn es eine passende Lösung geben würde, denn es soll ja alles möglichst einfach und automatisiert ablauern können.

Grüße

Andi

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von clag » Di, 05.11.2013 10:22

Hallo AndiO,

man stolpert doch direkt darüber wenn man eine Frage schreibt und abschickt :lol:
AndiO_Frage01.png
AndiO_Frage01.png (8.92 KiB) 4023 mal betrachtet

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von AndiO » Di, 05.11.2013 10:01

Hallo,

gerne würde ich ein Beispiel hochladen, aber ich finde dazu nicht den richtigen Button? Wie kann ich denn ein Dokument hochladen?

Grüße

Andi

Re: Makro zum drucken, dass den Druckbereich dynamisch auswä

von F3K Total » Sa, 02.11.2013 11:22

Hallo Andi,
nein, nicht das Makro, sondern die Buttons müssen angepasst werden.
Wenn Du allerdings eine regelmäßige Ordnung in deinen "Formularen" hast, kann man das viel einfacher erledigen.
z.B. mit nur einem Button und einer Auswahlliste.
Doch dazu fehlt die Information.
Es wäre am Besten, wenn du hier z.B. ein verkürztes Beispieldokument hochladen würdest.

Gruß R

Nach oben