na początku zrobię mały wstęp.
Całe makro ma być wywoływane z pliku roboczego.
Otóż mam kilka makr, które w miarę rozbudowywania się projektu łączę w jedną całość. Jedno z makr kopiuje arkusz z jednego pliku do pliku o nazwie Tymczasowy.ods (początkowo kopiowało do nowo otwartego pliku "Bez tytułu 2.ods" ale takie rozwiązanie wydało mi się łatwiejsze bo przynajmniej wiem do jakiego pliku mam się później odwoływać).
Teraz poniższe makro (zapożyczone z tego forum) zapisuje bieżący plik pod pobraną z komórki nazwą w określonym katalogu zależnym od daty.
Ja potrzebuję żeby zapisywało ten plik Tymczasowy.ods bądź może da się zapisać taki nowo otwarty pod daną nazwą pobrana z komórki.
Może ktoś mi pomoże.
Kod: Zaznacz cały
Option Explicit
' Katalog bazowy dokumentów
Const csBaseDocDir As String = "c:\Karty pracy"
Const csSheetName As String = "Kopia raport serwisowy"
Const csNumberFormat As String = "000000"
Private sPathSep As String
' ========================================================
' SaveSheet
' ========================================================
Sub SaveSheet
Dim oDoc As Object
Dim oSheet As Object
Dim oCell As Object
Dim dDate As Date
Dim sDocNumber As String
Dim sDateISO As String
Dim sDirDay As String
Dim sDirMonth As String
Dim sDirYear As String
Dim sDir As String
sPathSep = GetPathSeparator()
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName(csSheetName)
oCell = oSheet.getCellByPosition(2,11) ' C12 Data dok.
dDate = oCell.getValue()
oCell = oSheet.getCellByPosition(2,1) ' C2 Numer dok.
sDocNumber = oCell.getString() ' wartosc jako tekst
'sDocNumber = Format(oCell.getValue(), csNumberFormat) ' wartosc z formatowaniem
sDateISO = CDateToISO(dDate)
sDirDay = Right(sDateISO,2)
sDirMonth = Mid(sDateISO, 5, 2)
sDirYear = Left(sDateISO, 4)
sDir = csBaseDocDir + sPathSep + sDirYear + _
sPathSep + sDirMonth + _
sPathSep + sDirDay
if sDocNumber > 0 Then
SaveDocument sDir, sDocNumber + ".ods"
Else
MsgBox "Wpisz numer zlecenia na karcie 'ROBOCZY'." + Chr(13) + "W przypadku braku zlecenia z centrali uzupełnij numer kolejny wizyty.",16,"STOP"
End if
End Sub
' ========================================================
' SaveDocument
' ========================================================
Sub SaveDocument( sDirName As String, sFileName As String )
Dim args(0) As New com.sun.star.beans.PropertyValue
Dim sURL As String
MkDir(sDirName)
sURL=ConvertToURL(sDirName + sPathSep + sFileName)
ThisComponent.storeToURL(sURL, args())
End Sub