Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[calc] Inserire nome del foglio e data in una cella

1,909 views
Skip to first unread message

Ale

unread,
Oct 15, 2009, 2:22:10 AM10/15/09
to
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?

Inoltre, posso inserire in automatico la data di creazione del file in
una cella?

VITRIOL

unread,
Oct 15, 2009, 3:01:56 AM10/15/09
to
Il 15/10/2009 8.22, Ale ha scritto:

> 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/

VITRIOL

unread,
Oct 15, 2009, 3:06:20 AM10/15/09
to
Il 15/10/2009 9.01, VITRIOL ha scritto:

> che voglio una macro.

Che ci viglia... non sono io a volerlo :-)

Ale

unread,
Oct 15, 2009, 3:21:52 AM10/15/09
to
VITRIOL ha scritto:

> Prova una cosa del genere:
>
> =DESTRA(CELLA("FILENAME");LUNGHEZZA(CELLA("FILENAME"))-RICERCA("$";CELLA("FILENAME")))
>

Funziona perfettamente! Grazie mille!

martello

unread,
Oct 15, 2009, 4:11:37 AM10/15/09
to
VITRIOL ha scritto:

> Il 15/10/2009 9.01, VITRIOL ha scritto:
>
>> che voglio una macro.
>
> Che ci viglia... non sono io a volerlo :-)
>


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

VITRIOL

unread,
Oct 15, 2009, 4:25:53 AM10/15/09
to
Il 15/10/2009 10.11, martello ha scritto:

> 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.

VITRIOL

unread,
Oct 15, 2009, 4:31:50 AM10/15/09
to
Il 15/10/2009 10.25, VITRIOL ha scritto:

> 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...

martello

unread,
Oct 15, 2009, 5:01:10 AM10/15/09
to

> 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

VITRIOL

unread,
Oct 15, 2009, 5:08:39 AM10/15/09
to
Il 15/10/2009 11.01, martello ha scritto:

> 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")

martello

unread,
Oct 15, 2009, 5:11:50 AM10/15/09
to
VITRIOL ha scritto:

> Il 15/10/2009 11.01, martello ha scritto:
>
>> 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 ...

0 new messages