MACRO PER STAMPA RAPIDA - Calc

Creare una macro - Scrivere uno script - Usare le API
Rispondi
marco_carlotto
Messaggi: 2
Iscritto il: martedì 29 gennaio 2013, 10:22

MACRO PER STAMPA RAPIDA - Calc

Messaggio da marco_carlotto »

Salve a tutti.
Sto effettuando il passaggio a OpenOffice ma ho un problema con una macro creata utilizzando Visual Basic: essa praticamente, mi permetteva di eseguire un numero di stampe definite dal valore numerico immesso in una determinata cella.

Vi posto la macro in VB:

Sub Stampa()
ActiveWindow.SelectedSheets.PrintOut Copies:=(Range("M12"))
End Sub


Dove M12 è la cella nella quale inserisco il numero di copie da stampare.

Come ottengo la stessa cosa in OpenOffice?
Grazie anticipatamente dei consigli!
Buona giornata.
_______________________________________________________________________________________________________________________________________________
OpenOffice.org 3.4.1 - Windows Seven
OpenOffice.org 3.4.1 - Win7
marco_carlotto
Messaggi: 2
Iscritto il: martedì 29 gennaio 2013, 10:22

Re: MACRO PER STAMPA RAPIDA - Calc

Messaggio da marco_carlotto »

Leggendo nel forum ho provato con:

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Sub Stampa ()
ActiveWindow.SelectedSheets.PrintOut Copies:=( __________________)***
End Sub


***Tra le parentesi ho provato:
- (Range("M12"))
- (Range(12,11))
- (12,11)


Ma mi stampa sempre e solo UNA copia. Se però inserisco un valore numerico funziona correttamente (es. Copies:=5 -----Stampa 5 copie)

DOMANDA: Come si assegna come variabile il valore riportato in una cella???
OpenOffice.org 3.4.1 - Win7
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Re: MACRO PER STAMPA RAPIDA - Calc

Messaggio da LUGIUDANI »

Io ho trovato questa macro per la stampa, ma non l'ho ancora provata... se vuoi darci un'occhiata

Codice: Seleziona tutto

Sub PrintCurrentDocument(oDoc As Object)
	Dim vTemp As Variant
	Dim mPrintopts(1) As New com.sun.star.beans.PropertyValue
	'oRanges = _
	  'oDocument.createInstance("com.sun.star.sheet.SheetCellRanges")

	'***********************************
	'Do you want to choose a certain printer
	'Dim mPrinter(0) As New com.sun.star.beans.PropertyValue
	'mPrinter(0).Name="Name"
	'mPrinter(0).value="Other printer"
	'oDocument.Printer = mPrinter()

	'***********************************
	oTemplateFile = NewFromTemplate(szPath + "modelli/Statistiche.ott") '(apre modello Fattura in Writer)
	'oDocument.Print(mPrintopts1())

	'***********************************
	'To print pages 1-3, 7, and 9
	'oDocument.Printer.PaperFormat=com.sun.star.view.PaperFormat.LETTER
	'DisplayMethods(oDocument, "propr")
	'DisplayMethods(oDocument, "")
	'oPrinter = oDocument.getPrinter()
	'MsgBox "printer is from " + LBound(oPrinter) + " to " + UBound(oPrinter)
	'sMsg = ""
	'For n = LBound(oPrinter) To UBound(oPrinter)
	'	sMsg = sMsg + oPrinter(n).Name + Chr(13)
	'Next n
	
	'mPrintopts(0).Name="CopyCount"
	'mPrintopts(0).Value="2"
	'mPrintopts(0).State=com.sun.star.beans.PropertyState.DIRECT_VALUE
	'mPrintopts(0).Handle=-1
	'Dim oPrinterOptions As Object
	'oPrinterOptions = CreateUnoService("com.sun.star.view.PrintOptions")
	'oPrinterOptions.CopyCount = 2
	
	'oDoc.Print(mPrintopts())
End Sub
Openoffice.org 3.2
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: MACRO PER STAMPA RAPIDA - Calc

Messaggio da Gaetanopr »

Così dovrebbe funzionare basta inserire il numero di copie in B1, sicuramente (non l'ho provata) funzionerà pure quella allegata da Lugiudani

Codice: Seleziona tutto

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Sub Stampa ()
a = Cells(1,2).value   ' cella B1
ActiveWindow.SelectedSheets.PrintOut Copies:= (a)
End Sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Rispondi