Inoltre, posso inserire in automatico la data di creazione del file in
una cella?
> Avendo un documento calc con vari fogli, vorrei che in una cella di
> ciascun foglio, apparisse il nome del foglio specifico a cui la cella
> appartiene. E' possibile?
Prova una cosa del genere:
=DESTRA(CELLA("FILENAME");LUNGHEZZA(CELLA("FILENAME"))-RICERCA("$";CELLA("FILENAME")))
> Inoltre, posso inserire in automatico la data di creazione del file in
> una cella?
Questo non lo so, e temo che voglio una macro.
--
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3.0 Soluzioni a raccolta", molto piᅵ di semplici
FAQ! http://it.openoffice.org/doc/manuali/
> che voglio una macro.
Che ci viglia... non sono io a volerlo :-)
> Prova una cosa del genere:
>
> =DESTRA(CELLA("FILENAME");LUNGHEZZA(CELLA("FILENAME"))-RICERCA("$";CELLA("FILENAME")))
>
Funziona perfettamente! Grazie mille!
Da Andrew's macro Information pag.59 con qualche lieve modifica
matellesca (sperando di non aver violato diritti d'autore).
Nella cella si scrive:
=DATACREAZIONE()
Nelle macro si memorizza:
Function DATACREAZIONE
REM Author: Andrew Pitonyak
On Error Resume Next
Dim oPropValues() ' Array of property values
Dim i% ' General index variable
Dim s$ ' General string variable
REM Get the property values from the document information object.
REM This is an array of property values.
oPropValues() = ThisComponent.getDocumentInfo().getPropertyValues()
i=4
' s = s & oPropValues(i).Name
REM The property value is a struct so it is probably a Date
REM structure.
If IsUnoStruct(oPropValues(i).Value) Then
REM If the name contains "Date", then assume that it is
REM a date object.
If InStr(oPropValues(i).Name, "Date") > 0 Then
With oPropValues(i).Value
s = s & " : " & .Month & "/" & .Day & "/" & .Year & _
" " & .Hours & ":" & .Minutes & ":" & .Seconds & _
"." & .HundredthSeconds
End With
Else
REM This is an unknown property value.
s = s & "?:?"
End If
Else
s = s & ":" & oPropValues(i).Value
End If
DATACREAZIONE = s
End function
> Da Andrew's macro Information pag.59 con qualche lieve modifica
> matellesca (sperando di non aver violato diritti d'autore).
Funziona. Non riesco a capire il : all'inizio, ma si puᅵ facilmente
rimuovere dalla stringa di output.
> Funziona. Non riesco a capire il : all'inizio, ma si puᅵ facilmente
> rimuovere dalla stringa di output.
PS
Perᅵ sarebbe bello se la funzione ritornasse un oggetto data, non una
stringa...
Cosᅵ restituisce il seriale ... perᅵ poi la cella va formattata come data.
Function DataCreazione() as Long
On Error Resume Next
Dim oPropValues() ' Array of property values
Dim i% ' General index variable
Dim s$ ' General string variable
oPropValues() = ThisComponent.getDocumentInfo().getPropertyValues()
i=4
If IsUnoStruct(oPropValues(i).Value) Then
If InStr(oPropValues(i).Name, "Date") > 0 Then
With oPropValues(i).Value
giorno = .Day
mese=.Month
anno=.Year
End With
End If
Else
s = s & ":" & oPropValues(i).Value
End If
DataCreazione =DateSerial(val(anno),val(mese),val(giorno))
End function
> Cosᅵ restituisce il seriale ... perᅵ poi la cella va formattata come data.
Mi sembra perfetto, grazie anche da parte mia. Poi se proprio uno vuole
una stringa al posto della data, puᅵ fare una cosa del genere
formattandola come vuole:
=TESTO(DATACREAZIONE(); "GG/MM/AAAA")
aggiungo che modificando la riga
i=4
con un po di pazienza si trova anche la data di ultima modifica.
Il primo che la trova vince ... un tubo ...