Hallo, ich hoffe einer von euch kann mir weiter helfen.
Ich habe 2 Probleme
1. Ich habe eine Vorlage in 1.9.130 mit ca.15 Tabellen erstellt. In der ersten Tabell möchte ich so eine Art "README" schreiben. Jetzt geht es darum diese erste Tabelle für den Druck vorgang auszuschließen. Ich weiß zwar das ich den Inhalt ausblenden kann, aber trotzdem wird bei einem Druckvorgang für diese Tabelle eine Blatt durch den Drucker gezogen. Das möchte ich eigentlich verhindern.
2. Ich möchte gern eine Schaltfläche in jeder einzelne Tabelle einbauen. Diese soll bei einem klick nur die aktuelle Tabelle ausdrucken und wenn es geht im Entwurfs modus(wenn das möglich ist). Ich habe leider keine ahnung von Macro Programmierung, sonst hätte ich mir da vielleicht schon selber was basteln können.
Ich habe für das druck Macro auch schon das Forum hier durchsucht aber ich war nicht in der Lage die hier angegebenen Macros für mich zu über nehemen.
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
2 kleien Probleme mit 1.9.130
Moderator: Moderatoren
moin teakay,
gruß Paule
Du musst den Druckbereich festlegen. (Das as gedruckt werden soll markieren->FORMAT->Druckbereiche->Festlegen. bei der Zweiten Tabelle genau das gleich außer das du statt "Festlegen" auf "hinzufügen Klickst.. Ich habe eine Vorlage in 1.9.130 mit ca.15 Tabellen erstellt. In der ersten Tabell möchte ich so eine Art "README" schreiben. Jetzt geht es darum diese erste Tabelle für den Druck vorgang auszuschließen. Ich weiß zwar das ich den Inhalt ausblenden kann, aber trotzdem wird bei einem Druckvorgang für diese Tabelle eine Blatt durch den Drucker gezogen. Das möchte ich eigentlich verhindern.
gruß Paule
Hallo teakay,
Paule hat dir ja schon zum ersten Teil deiner Frage eine Antwort gegeben. Aber nochmal zum Prinzip:
Ist in Calc kein Druckbereich definiert, werden immer alle benutzten Tabellen ausgedruckt - vollständig. Ist jedoch nur ein Druckbereich (oder eben mehrere) definiert, wird nur dieser/diese Bereich/e ausgedruckt.
Dieses Prinzip brauchst du auch für das Makro. Du musst zunächst alle Druckbereiche löschen, dann den neuen Druckbereich setzen, und dann das Dokument ausdrucken. Das Makro könnte wie folgt aussehen:
Die Funktion erwartet einen Druckbereich als RangeAddress-Objekt sowie den Index des Tabellenbalttes (nSheet). Du brauchst also noch für jeden Button auf den Tabellenbalättern eine eigene Funktion, welche diese Daten liefert. Beispiel für zweite Tabelle (index 1) und den Druckbereich A1:m100:
Und das für alle anderen Buttons ähnlich.
Ich hoffe, es hilft.
Gruss
Thomas
Paule hat dir ja schon zum ersten Teil deiner Frage eine Antwort gegeben. Aber nochmal zum Prinzip:
Ist in Calc kein Druckbereich definiert, werden immer alle benutzten Tabellen ausgedruckt - vollständig. Ist jedoch nur ein Druckbereich (oder eben mehrere) definiert, wird nur dieser/diese Bereich/e ausgedruckt.
Dieses Prinzip brauchst du auch für das Makro. Du musst zunächst alle Druckbereiche löschen, dann den neuen Druckbereich setzen, und dann das Dokument ausdrucken. Das Makro könnte wie folgt aussehen:
Code: Alles auswählen
sub BereichDrucken(oDrBereich, nSheet)
Dim aDruckbereich(0) 'Array zur Aufnahme des Druckbereiches
oSheet = thisComponent.sheets(nSheet)
aDruckbereich(0) = oDrBereich
oSheet.setPrintAreas(aDruckbereich())
thisComponent.print() 'druckt das aktuelle Dokument
REM hier könnte man jetzt noch den Druckbereich wieder löschen
end sub
Code: Alles auswählen
Sub Seite2drucken
oSheet = thisComponent.sheet(1)
oDrBereich = oSheet.getCellRangeByName("A1:M100").rangeAddress
BereichDrucken(oDrBereich, 1)
end sub
Ich hoffe, es hilft.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic