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 :lol:
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