OpenOffice.org Calc : une macro pour imprimer

kabeha

Membre expert
Club iGen
13 Mai 2002
1 323
54
61
Bourg en Bresse
Bonjour,
Je voudrais utiliser une macro dans un tableur openoffice qui me lance une impression avec des paramètres définis et fixes, directement, sans passer par la boîte de dialogue de l'imprimante avec les paramètres suivants :
A5, Portrait, 2 ex., éventuellement N&B économique
Est-ce possible, sans être trop compliqué ?
Merci d'avance.
 
Une macro comme ça, il te suffit de l'enregistrer, même pas besoin de la taper (pour l'enregistrement, tu passes par la boite de dialogue de l'imprimante, mais après, quand la macro s'exécute, elle n'apparait plus).
 
J'ai essayé, mais quand je lance la macro, cela m'ouvre ma boîte de dialogue de l'imprimante
Bloc de code:
REM  *****  BASIC  *****


sub Main
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())


end sub
 
Ah … ben alors, je suis désolé, c'est une erreur de ma part, je pensais que de ce point de vue, les macros OOo se comportaient comme les macros Excel. :rose:

Plus qu'à attendre le passage d'un spécialiste d'OOo.
 
Finalement, en fouinant un peu, j'ai trouvé la macro ci-dessous, qui fonctionne telle quelle
Bloc de code:
REM  *****  BASIC  *****

sub Main
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 2
args2(1).Name = "RangeText"
args2(1).Value = "1"
args2(2).Name = "Collate"
args2(2).Value = true
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())

end sub