VB Macro "opslaan als"

Weet je niet waar je je bericht moet zetten? Doe het hier

VB Macro "opslaan als"

Berichtdoor Theo van H. » ma jan 13, 2020 3:18 pm

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??
Open Office 417, windows 10
Theo van H.
 
Berichten: 1
Geregistreerd: ma jan 13, 2020 3:09 pm

Re: VB Macro "opslaan als"

Berichtdoor RPG » ma jan 13, 2020 9:07 pm

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
Code: Selecteer alles   UitklappenInklappen
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 6.4.4.2.0 op openSUSE Leap 15.1
RPG
 
Berichten: 4178
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: VB Macro "opslaan als"

Berichtdoor DiGro » ma jan 20, 2020 4:43 pm

Misschien zoiets ?

Code: Selecteer alles   UitklappenInklappen
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 10 en AOO 4.1.7
Gescand door Ziggo Safe Online (F-Secure)
Avatar gebruiker
DiGro
 
Berichten: 67
Geregistreerd: wo mei 13, 2009 4:57 pm
Woonplaats: Hoorn NH


Keer terug naar Beginners

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast