Schaltfläche/Button soll bestimmten Bereich drucken lassen.

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

bullix
Beiträge: 3
Registriert: Mo, 20.12.2004 15:40

Schaltfläche/Button soll bestimmten Bereich drucken lassen.

Beitrag von bullix »

Hallo User von OO Calc,

ich habe eine Exceldati, die umfangreiche VBA - Codes enthält und unter Excel auch prima funktioniet. Darin sind zahlreiche VBA Codes enthlaten. Leider fehlt mir eine bisschen die Zeit, um mich länger mit den Codesstukturen von OO Calc zu beschäftigen. Vielleicht kann mir mal jemand bei der einen oder anderen Sache hlfen. Ich wäre echt dankbar!!! Vieles ist vielleicht recht banal für den einen oder anderen, der sich schon länger mit OO Calc beschäftigt. Ich stehe ganz am Anfang.

Hier meine Frage: Ich möchte, dass meine Schaltfläche (PushButton) funktioniert und in der Tabelle den Bereich A8 bis Q50 druckt. Die Aufzeichnung mit dem Makrorekorder hat folgenden Code ergeben.

sub Vorplanung_drucken
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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$6:$Q$50"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Selection"
args2(1).Value = true
args2(2).Name = "Collate"
args2(2).Value = false

dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())


end sub

Scheint mir recht wirr und viel dafür. Außerdem löst die Schaltfläche nicht aus.

Über Erste Hilfe für einen DAU würde ich mich freuen. Danke
Wer zu laut und zu oft seinen eigenen Namen kräht, erweckt den Verdacht, auf einem Misthaufen zu stehen.

Otto von Leixner, deutscher Schriftsteller (1847-1907)
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey bullix,

Code ist ok, ist eben dispatcher Code. Geht auch kürzer, dann musst du aber selbst programmieren.
Hast du das Makro der Schaltfläche denn auch zugewiesen? Sonst kann sie nicht auslösen.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Ich weiß nicht was "meine Schaltfläche" ist.
Das Makro das Du gepostet hast funktioniert bei mir völlig problemlos. Wenn Du es testen willst, dann beachte das zumindest in einer der zu druckenden Zellen etwas eingetragen sein muß.

Gruß
Stephan
bullix
Beiträge: 3
Registriert: Mo, 20.12.2004 15:40

Beitrag von bullix »

Meine Schaltfläche ist eine Schaltfläche, die ich mit der Formularfunktion erstellt habe. Das Makro habe ich der Schaltfläche zugewiesen.

bullix
Wer zu laut und zu oft seinen eigenen Namen kräht, erweckt den Verdacht, auf einem Misthaufen zu stehen.

Otto von Leixner, deutscher Schriftsteller (1847-1907)
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Bullix,
Das muss es doch für OO Calc auch geben. Gibts so was kurzes, wäre schön, wenn jemand was anbieten kann.
Ja, es gibt was kurzes:

Code: Alles auswählen

sub drucken
     dim dummy()
      thiscomponent.print(dummy())
end sub
Aber..... Es ist immer schwierig, das alle zu erkennen, was du tatsächlich daraus machst. Damit das funktioniert, ist folgendes notwendig:
Du musst zuerst den gewünschten Bereich einmal markieren und dann diesen als Druckbereich festlegen (Format -Druckbereich festlegen). Es muss ein funktionsfähiger Standarddrucker vorhanden sein, und es gibt weitere Unwägsamkeiten.
Aber, probiere es erst einmal aus.
Bis denn
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten