Seite 1 von 1
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 18:13
von lorbass
Vielleicht versuchst du's nochmal selbst mit Hilfe von Michael Dannenhöfers
StarBasic / OpenOffice.org Basic FAQ, Kapitel
6.1 Öffnen/Speichern?
Gruß
lorbass
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 19:29
von Peter hat eine Frage
Hallo lorbass,
ich glaube das da nicht das richtige dabei ist oder ich verstehe es nicht. Vielleicht auch beides
Wäre toll wenn sich jemand der Profis erbarmen könnte, vielen Dank.
Gruß
Peter
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 20:31
von Stephan
z.B.:
Code: Alles auswählen
Sub Main
blatt = ThisComponent.CurrentController.ActiveSheet
With blatt
tmp = .getCellRangeByName("A5").String
tmp = tmp & .getCellRangeByName("B22").String
tmp = tmp & .getCellRangeByName("C17").String
tmp = tmp & .getCellRangeByName("C17").String
tmp = tmp & .getCellRangeByName("B22").String
tmp = tmp & .getCellRangeByName("B31").String
tmp = tmp & .getCellRangeByName("B22").String
tmp = tmp & .getCellRangeByName("B31").String & ".ods"
End With
ThisComponent.storeAsUrl(ConvertToURL(tmp), Array())
End Sub
Gruß
Stephan
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 21:03
von Peter hat eine Frage
Hallo Stephan,
Besten Dank! Die einzelnen Zellinhalte werden gefunden, dann diese Fehlermeldung:
BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.task.ErrorCodeIOException
Message: SfxBaseModel::impl_store <
http://20170002-Rechnung-Schlaier-23.08.17.ods/> failed: 0x5032.
Bei der Fehlermeldung öffnet sich das Basic Fenster, ein Pfeil zeigt auf die letzte Zeile:
ThisComponent.storeAsUrl(ConvertToURL(tmp), Array())
Hier muss der Fehler liegen, ich kann nichts erkennen.
Code: Alles auswählen
Sub Main
blatt = ThisComponent.CurrentController.ActiveSheet
With blatt
tmp = .getCellRangeByName("B31").String
tmp = tmp & .getCellRangeByName("B22").String
tmp = tmp & .getCellRangeByName("A5").String
tmp = tmp & .getCellRangeByName("B22").String
tmp = tmp & .getCellRangeByName("C17").String
tmp = tmp & .getCellRangeByName("B22").String
tmp = tmp & .getCellRangeByName("K31").String & ".ods"
End With
ThisComponent.storeAsUrl(ConvertToURL(tmp), Array())
End Sub
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 21:10
von Stephan
Hier muss der Fehler liegen, ich kann nichts erkennen.
http://20170002-Rechnung-Schlaier-23.08.17.ods/ ist keine gültige Adresse+Dateiname
Gruß
Stephan
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 21:12
von Peter hat eine Frage
Das ist mir klar. Aber der Dateiname wird ja durch das Makro erzeugt!? Wo kommt das http her?
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 21:13
von Peter hat eine Frage
Wahrscheinlich muss ich irgend wie den Speicherort C:/Test mit angeben, oder?
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 21:38
von Stephan
Wo kommt das http her?
von mehreren Punkten im Dateinamen bei gleichzeitigem Nichtvorhandensein einer Adresse
Wahrscheinlich muss ich irgend wie den Speicherort C:/Test mit angeben, oder?
ja. richtigerweise natürlich C:\Test
Gruß
Stephan
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 21:52
von Peter hat eine Frage
Hallo Stephan,
OK. die Zelle K31, das Datum mit den Punkten habe ich herausgenommen. Eine Fehlermeldung erscheint nicht mehr

Die Datei wird allerdings auch nicht gespeichet.
Wo muss ich den Pfad eingeben?
Gruß
Peter
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 22:08
von Stephan
Wo muss ich den Pfad eingeben?
Das weiß ich doch nicht, denn ich habe keine Ahnung was in den ganzen Zellen steht.
Schreibe eine MsgBox in den Code dann kannst Du kontrollieren, was als Pfad übergeben wird:
Code: Alles auswählen
Sub Main
blatt = ThisComponent.CurrentController.ActiveSheet
With blatt
tmp = .getCellRangeByName("B31").String
tmp = tmp & .getCellRangeByName("B22").String
tmp = tmp & .getCellRangeByName("A5").String
tmp = tmp & .getCellRangeByName("B22").String
tmp = tmp & .getCellRangeByName("C17").String
tmp = tmp & .getCellRangeByName("B22").String
tmp = tmp & .getCellRangeByName("K31").String & ".ods"
End With
Msgbox tmp
ThisComponent.storeAsUrl(ConvertToURL(tmp), Array())
End Sub
Gruß
Stephan
Re: Calc Datei speichern per Makro
Verfasst: Mi, 23.08.2017 22:19
von Peter hat eine Frage
Hallo Stephan,
jetzt hab ich das vertanden, der Pfad kann ich auch in eine Zelle schreiben.
Es funktioniert, Danke für deine nicht endenwollende Geduld!
Gruß
Peter