was willst Du denn jetzt nun wirklich? Ich blicke echt nicht mehr durch.
Klar ist das möglich.ist es möglich den Druckbereich in einem Calc Dokument variabel zu machen?
Darauf lässt sich problemos aufbauen.Also z.b. wenn in Tabelle1 in Zeile A1 eine 1 steht, dann soll der Druckbereich in Tabelle2 von A1 bis G50 gehen. Steht doch eine 2, dann soll der Druckbereich A1:G60 sein. Bei 3 A1:G66.
Und dann kommst Du mit so etwas um die Ecke.
Ich schreib das jetzt mal anders hin.wenn A17=1 und A18 und A19 und A20 usw =0 dann
'mach das
wenn A18 und A17 =1 und a19 und A20 =0 dann
'mach das
wenn A19 undA18 und A17 =1 und A20 =0 dann
'mach das
A17=1, A18=0, A19=0, A20=0
A17=1, A18=1, A19=0, A20=0
A17=1, A18=1, A19=1, A20=0
Das steht doch im vollen Gegensatz zu der voherigen Aussage: Wenn in A1 entweder eine 1, oder 2 oder aber eine 3 steht.
Das Du wenig bis gar keine Ahnung von StarBasic hast, ist für mich nun mehr als eindeutig. Aber das Du die Eingangsproblematik auf einmal in eine ganz andere Richtung verschiebst, ist für mich nicht nachvollziehbar.
Ich habe jetzt so was von die Schnauze gestrichen voll, .....

Code: Alles auswählen
Sub WandernderDruckbereich
Dim aWanderDruck(1 to 3)
Dim oLeseBlatt as Object, oAktionBlatt as Object
oDok = ThisComponent
oLeseBlatt = oDok.sheets.getByName("Tabelle1")
oAktionBlatt = oDok.sheets.getByName("Tabelle2")
aWanderDruck(1) = 5
aWanderDruck(2) = 10
aWanderDruck(3) = 15
oAusleseZelle = oLeseBlatt.getCellRangeByName("A4").value
if oAusleseZelle >0 and oAusleseZelle <4 then
' Druckbereich A1 bis B??? festlegen.
'
oZellRange = oAktionBlatt.getCellRangeByName( "A1:B" & aWanderDruck( oAusleseZelle ))
oCursor = oAktionBlatt.createCursorByRange( oZellRange )
oAdress = oCursor.RangeAddress
Dim aDruckbereich(0)
aDruckbereich(0) = oAdress
oAktionBlatt.setPrintAreas(aDruckbereich()
Print "Druckbereich angelegt."
else
Print "Kein gültiger und zugelassener Wert in der Zelle A4 !"
end if
End Sub
Dann auf den Button drücken.
Gruß
balu