Hallo allemaal,
Ik ben sinds kort na jaren overgestapt van Excel naar Oo. Aanpassen gaat goed, verschillen vallen me nog mee.
Echter: in Excel had ik een macro (gekregen) die mijn actieve tabblad opsloeg.
Werking: ik maak facturen. Gegevens uit andere tabbladen worden verzameld op het tabblad "factuur'. Daar staat in cel A1 (met behulp van tekst.samenvoegen) het pad, naam klant, weeknummer. BV: C:\administratie\debiteuren\F2020-01, de Boer, week1. Vervolgens moet het opgeslagen worden als PDF èn het melden als er al een ebstand bestaat (dan mag macro gestopt worden..).
In Excel was het een kort macrootje, maar ik krijg hem niet vertaald naar OO.
Wie kan helpen??
VB Macro "opslaan als"
-
- Berichten: 1
- Lid geworden op: ma jan 13, 2020 3:09 pm
VB Macro "opslaan als"
Open Office 417, windows 10
Re: VB Macro "opslaan als"
Dat hier een opgenomen macro gebruikt wordt, betekent niet dat je opgenomen macro's veelvuldig in een loop kunt gebruiken. Opgenomen macro's zijn in principe buitengewoon traag maar voor een eenmalige handeling zoals het exporteren van een printbereik naar een PDF is traagheid niet belangrijk.
Het volgende is een opgenomen macro die een pdf bestand maakt. Om de inhoud te controleren kan het best een printbereik aan gemaakt worden. Voor het aanpassen van de filenaam kun je de naam aanpassen.
De opgenomen macro is wel iets veranderd. Het belangste is misschien wel het toevoegen van Overwrite
Service MediaDescriptor
Het volgende is een opgenomen macro die een pdf bestand maakt. Om de inhoud te controleren kan het best een printbereik aan gemaakt worden. Voor het aanpassen van de filenaam kun je de naam aanpassen.
De opgenomen macro is wel iets veranderd. Het belangste is misschien wel het toevoegen van Overwrite
Service MediaDescriptor
Code: Selecteer alles
sub Macro1
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 ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///home/romgro/Documenten/opof/data/calc2/Hulpprogrammas/VoorPDF/metarguments/proefje.pdf"
' Hier moet de file naam komen al of niet met een extensie.
' Het is niet een padnaam zoals mogelijk in een filemanage
' hier wordt een url gebruikt.
' De URL kan gemaakt worden in CALC of met behulp van BASIC
' ConvertToURL(filename)
' ConvertFromURL(filename)
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "Overwrite"
args1(2).Value = false
dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())
end sub
LibreOffice 24.2.4.2 op openSUSE Leap 15.6
Re: VB Macro "opslaan als"
Misschien zoiets ?
Code: Selecteer alles
Option Explicit
Sub FactuurAlsPDF()
Dim Cel As Object
Dim Werkblad As Object
Dim oDoc
Dim sPad as String
Dim sPDFNaam as String
oDoc = ThisComponent
Werkblad = oDoc.Sheets.getByName("Factuur")
Cel = Werkblad.getCellByposition(0,0) 'cel A1
sPDFNaam = ConvertToURL(Cel.getString("A1")&".pdf")
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value = sPDFNaam
args2(1).Name = "FilterName"
args2(1).Value = "calc_pdf_Export"
If Not FileExists(sPDFNaam) Then
ThisComponent.storeToUrl(sPDFNaam, args2())
Wait 2000
Else
MsgBox ("Bestand bestaat al!" & CHR(13) & "Huidige bestand wordt niet opgeslagen", 49, "Bestand bestaat al")
Exit Sub
End If
End Sub
DiGro
----------------------------------------------------
Windows 11 en AOO 4.1.15
Gescand door Ziggo Safe Online (F-Secure)
----------------------------------------------------
Windows 11 en AOO 4.1.15
Gescand door Ziggo Safe Online (F-Secure)