über Nacht gehen meine Makros zum Teil nicht mehr.
Das ist übel, weil ich schreibe damit Rechnungen.
Ich habe nichts installiert. Eventuell hat Win11 ein Update gemacht.
Ich habe eben mal LibreOffice 25.2.25 drüber installiert.
Vorher war 25.2.4
Ich kenne mich mit Makros nicht so gut aus.
Das Meiste hatte ich hier aus dem Forum.
Momentan kann ich kein neues Dokument öffnen, da kommt:
Code: Alles auswählen
Lesefehler.
Formatfehler in Teildokument styles.xml an Position 2,4158(Zeile,Spalte) in der Datei entdeckt.
Code: Alles auswählen
BASIC-Laufzeitfehler.
'1'
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.task.ErrorCodeIOException
Message: SfxBaseModel::impl_store <file:///d:/daten/firma/rechnungen/vorlage/vorlage2016.ots> failed: 0x81a(Error Area:Io Class:Parameter Code:26).
Code: Alles auswählen
REM ***** BASIC *****
Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
' Neue Datei öffnen ###################################################
Sub Form_oeffnen
Dim vDoc 'die geladene Komponente
Dim Arg() 'ein leeres Array der Argumenteliste
Dim sURL as String, Sframe As String, lSearch As Long
sUrl = convertToURL("d:\Daten\Firma\rechnungen\vorlage\vorlage2016.ots")
vDoc=StarDesktop.loadComponentFromURL (sURL, "_blank", 63, Arg())
end sub
' Datum per Strg+9 ####################################################
Sub AktuellesDatumEinfuegen
' thisComponent.CurrentSelection().setString(date())
thisComponent.CurrentSelection().setValue(date())
End Sub
' Zeile füllen - geht nicht
sub setdate2
oDoc = thisComponent
Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
mycell01 = Sheet.getCellRangeByName("$E$25")
if mycell01.string = "" then
mycell01.string = "Arbeitszeit " & date()
end if
end sub
' Datei speichern unter M13 ###########################################
sub save2
oDoc=thisComponent
Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
Cell = Sheet.getCellByPosition(12, 13) '[Zelle A1]
Filename = Cell.String
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FilterName"
args1(0).Value = "calc8"
arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
dialog = CreateUnoService("com.sun.star.ui.dialogs.OfficeFilePicker")
'Hinweis: der Dialog "com.sun.star.ui.dialogs.FilePicker" hat einen Bug bei .DisplayDirectory
' deshalb muss hier der OO-eigene Dialog .OfficeFilePicker genutzt werden
dialog.Initialize(arg())
dialog.appendFilter( "ODF Tabellendokument (*.ods)", "*.ods" )
dialog.SetMultiselectionMode(False)
dialog.DisplayDirectory = ConvertToURL("D:\Daten\Firma\rechnungen\2025\")
dialog.DefaultName = Filename
ok = dialog.execute()
if ok = 1 Then
datei = dialog.getFiles()
URL = datei(0)
oDoc.storeasurl(URL, args1())
end if
end sub
' Datum einfügen######################################################################
sub setdate
oDoc=thisComponent
Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
mycell01 = Sheet.getCellRangeByName("$M$11")
if mycell01.string = "" then
'Insert_As_Value( Date, "TT. MMM JJJJ", com.sun.star.util.NumberFormat.DATE )
mycell01.value = date()
end if
'Text einfügen
oDoc = thisComponent
Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
mycell01 = Sheet.getCellRangeByName("$E$25")
if mycell01.string = "" then
mycell01.string = "Arbeitszeit " & date()
end if
end sub
' Vorlage speichern ##################################################################
sub savevorlage
msg = msgbox("Vorlage überschreiben ?",4)
if msg = 6 then
oDoc=thisComponent
Sheet = oDoc.Sheets(0) '[erstes Arbeitsblatt]
Filename = "vorlage2016"
mycell01 = Sheet.getCellRangeByName("$M$11")
mycell01.string = ""
mycell02 = Sheet.getCellRangeByName("$E$25")
mycell02.string = ""
Path = "file:///d:/daten/firma/rechnungen/vorlage/" '[Pfad anpassen bei Windows]
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FilterName"
args1(0).Value = "StarOffice XML (Calc)"
oDoc.storeasurl(Path & Filename & ".ots",args1())
end if
end sub
' PDF Drucken ########################################################################
sub DruckerX
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Printer"
args1(0).Value = "FreePDF"
dispatcher.executeDispatch(document, ".uno:Printer", "", 0, args1())
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Collate"
args2(1).Value = false
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())
end sub