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
MACRO PER STAMPA RAPIDA - Calc
-
marco_carlotto
- Messaggi: 2
- Iscritto il: martedì 29 gennaio 2013, 10:22
MACRO PER STAMPA RAPIDA - Calc
OpenOffice.org 3.4.1 - Win7
-
marco_carlotto
- Messaggi: 2
- Iscritto il: martedì 29 gennaio 2013, 10:22
Re: MACRO PER STAMPA RAPIDA - Calc
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???
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
Re: MACRO PER STAMPA RAPIDA - Calc
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 SubOpenoffice.org 3.2
Re: MACRO PER STAMPA RAPIDA - Calc
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
Openoffice 4.1.13 su windows 10
