Dynamisches Array drucken

Antwort erstellen


Um automatische Eingaben zu unterbinden, musst du die nachfolgende Aufgabe lösen.

BBCode ist eingeschaltet
[img] ist ausgeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Dynamisches Array drucken

Re: Dynamisches Array drucken

von miknoll » Fr, 22.12.2017 14:54

Vielen Dank Tom! Manchmal sieht man vor lauter Weihnachtsbäumen den Wald nicht mehr.... oder so ;-)

Re: Dynamisches Array drucken

von Toxitom » Fr, 22.12.2017 14:17

Hey Miknoll,

na, wenn Du doch schon alle WErte hast :)

Code: Alles auswählen

 Zellname = oSheet.getCellRangeByName("M32").string 'das ist die Zelle, in der der Wert steht (also im Bsp. "B31") 
In deiner Variablen steht doch jetzt der text (String) "B31" .. oder eben der Inhalt.

Also nutzt Du diesen Wert zur Übergabe deines Bereiches:

Code: Alles auswählen

Bereich = Tab.getCellRangeByName("A1:" & zellname) 
Fertig.

Kannste natürlich auch in eine Zeile schreiben:

Code: Alles auswählen

Bereich = Tab.getCellRangeByName("A1:" & oSheet.getCellRangeByName("M32").string) 
Viele Grüße
Tom

Dynamisches Array drucken

von miknoll » Fr, 22.12.2017 11:17

Hallo zusammen,
ich habe folgendes Problem:
In einem Dokument mit diversen Tabellen soll nur ein bestimmter Bereich einer Tabelle gedruckt werden. Die entsprechenden Makro-Befehle habe ich hier im Forum gefunden und es klappt alles soweit. Allerdings soll der Druckbereich flexibel sein, da er von einem Wert aus einer anderen Tabelle abhängt.
Konkret: In "Tabelle2" steht in Zelle M32 der Wert für das Ende des zu druckenden Arrays,hier z.B. "B31". Gedruckt werden soll also der Bereich "A1:B31" in "Tabelle1". Irgendwie kriege ich die Syntax einfach nicht auf die Reihe. Kann mir bitte jemand helfen? Danke schön!

Mein bisheriges Ergebnis:

Dim Dok as Object
Dim Tab as Object
Dim Bereich as Object
Sub DruckenFELD()

'------ oben ist alles ok --------------------------

oSheet = thisComponent.sheets().getByName("Tabelle2") 'in dieser Tabelle steht der zu ermittelnde Wert
Zellname = oSheet.getCellRangeByName("M32").string 'das ist die Zelle, in der der Wert steht (also im Bsp. "B31")
Dok = ThisComponent
Controller = Dok.getCurrentController()
Tab = Controller.ActiveSheet
Bereich = Tab.getCellRangeByName("A1:B31") 'statt "B31" soll jetzt hier der Wert der Zelle "Tabelle2.M32" (also wieder "B31") angesteuert werden

'------ unten ist alles ok --------------------------

BereichDrucken
end Sub
Sub BereichDrucken
Dim Args1(0)
Dim Args2(1) as new com.sun.star.beans.PropertyValue
Dim Probs
Dim sDrucker as string
Probs = Dok.getPrinter()
sDrucker = Probs(0).value
args1(0) = Bereich.RangeAddress
Tab.setprintAreas(args1())
args2(0).name = "Name"
args2(0).value = "<" & sDrucker & ">"
args2(1).name = "Wait"
args2(1).value = true
Dok.print(args2())
redim args1()
Tab.setprintAreas(args1())
end Sub

Nach oben