Pagina 1 di 1
Inserire comando di campo su calc
Inviato: giovedì 8 novembre 2012, 12:52
da l.tor
Ciao a tutti,
in un file realizzato con calc, dovrei inserire il nome del titolo dello stesso.
Su writer ho visto la funzione "comando di campo" ma su calc sembra non essere presente.
Come potrei fare? Grazie!
Re: Inserire comando di campo su calc
Inviato: venerdì 9 novembre 2012, 15:18
da Anna
Forse il suggerimento è banale, ma se ti serve solo in stampa il nome del file (o del foglio) si può inserire nell'intestazione o piè di pagina.
Re: Inserire comando di campo su calc
Inviato: sabato 10 novembre 2012, 8:31
da l.tor
Mi serve mettere il nome del file in una certa cella del foglio.
C'è qualche sistema per farlo?
Re: Inserire comando di campo su calc
Inviato: sabato 10 novembre 2012, 10:26
da patel
Codice: Seleziona tutto
Sub ThisDocumentNameWithoutPath
GlobalScope.BasicLibraries.LoadLibrary("Tools")
oDoc = thisComponent
FileN=GetFileNameWithoutExtension(oDoc.url,"/")
msgbox FileN
End Sub
Sub ThisDocumentNameWithPath
GlobalScope.BasicLibraries.LoadLibrary("Tools")
oDoc = thisComponent
FileN=GetFileNameWithoutExtension(oDoc.url)
msgbox FileN
End Sub
Re: Inserire comando di campo su calc
Inviato: sabato 10 novembre 2012, 13:16
da l.tor
perdonami ma dove dovrei inserirlo questo codice?
inoltre per "nome del file" intendo il nome che gli attribuisco da file -> proprietà
comunque grazie tante anticipatamente!
Re: Inserire comando di campo su calc
Inviato: sabato 10 novembre 2012, 13:27
da patel
non mi sembra che esista una funzione di calc per ottenere il nome del documento corrente, quindi se proprio ci tieni occorre crearsela tramite macro come quelle che ho allegato perché tu le provassi, per farlo devi andare su Strumenti, Macro, Organizza Macro, Basic, Nuovo e incollare il codice e poi eseguirlo.
Se ti va bene possiamo provare a creare una funzione che ti inserisca il nome in una cella.
Re: Inserire comando di campo su calc
Inviato: sabato 10 novembre 2012, 18:01
da l.tor
purtroppo non funziona...
Re: Inserire comando di campo su calc
Inviato: sabato 10 novembre 2012, 20:15
da patel
allega il tuo file indicando dove vuoi mettere il nome ed il quale formato
Re: Inserire comando di campo su calc
Inviato: domenica 11 novembre 2012, 9:56
da l.tor
innanzitutto grazie tante per la disponibilità
ho un file con 12 fogli e in una cella in alto dovrei mettere a tutti il nome del file (ti ricordo non il nome del file fisico ma quello impostabile in file -> proprietà)
come potrei fare? il file è da circa 15MB e vorrei evitare di caricarlo
potresti insegnarmi il procedimento? grazie ancora
Re: Inserire comando di campo su calc
Inviato: domenica 11 novembre 2012, 10:50
da patel
dovrebbe essere evidente che è una cosa che non ho mai fatto e che quindi devo fare prove, ti ho chiesto il file perché mi hai detto che non riesci a far funzionare la mia macro, quindi le ipotesi sono 2:
1) dipende dal file
2) non sei capace di far funzionare una macro
in ambedue i casi occorre che ti fornisca il file già funzionante, sempre che mi riesca...
Ovviamente non è necessario che siano presenti tutti i fogli, ne bastano 3 per fare le prove
non ho capito bene la differenza tra nome del file fisico ma quello impostabile in file -> proprietà
Re: Inserire comando di campo su calc
Inviato: domenica 11 novembre 2012, 15:55
da Attilafdd
patel ha scritto:non mi sembra che esista una funzione di calc per ottenere il nome del documento corrente......
In effetti non esiste, ma si può ricostruire concatenando qualche formula:
per nome file senza estensione inserisci in una cella qualsiasi la formula:
Codice: Seleziona tutto
=STRINGA.ESTRAI(DESTRA(SOSTITUISCI(CELLA("FILENAME");"/";CODICE.CARATT(254);LUNGHEZZA(CELLA("FILENAME"))-LUNGHEZZA(SOSTITUISCI(CELLA("FILENAME");"/";"")));LUNGHEZZA(CELLA("FILENAME"))-RICERCA(CODICE.CARATT(254);SOSTITUISCI(CELLA("FILENAME");"/";CODICE.CARATT(254);LUNGHEZZA(CELLA("FILENAME"))-LUNGHEZZA(SOSTITUISCI(CELLA("FILENAME");"/";"")))));1;RICERCA(".ods";DESTRA(SOSTITUISCI(CELLA("FILENAME");"/";CODICE.CARATT(254);LUNGHEZZA(CELLA("FILENAME"))-LUNGHEZZA(SOSTITUISCI(CELLA("FILENAME");"/";"")));LUNGHEZZA(CELLA("FILENAME"))-RICERCA(CODICE.CARATT(254);SOSTITUISCI(CELLA("FILENAME");"/";CODICE.CARATT(254);LUNGHEZZA(CELLA("FILENAME"))-LUNGHEZZA(SOSTITUISCI(CELLA("FILENAME");"/";""))))))-1)
per avere anche l'estensione basta variare il -1 in fondo alla formula con +3:
Codice: Seleziona tutto
=STRINGA.ESTRAI(DESTRA(SOSTITUISCI(CELLA("FILENAME");"/";CODICE.CARATT(254);LUNGHEZZA(CELLA("FILENAME"))-LUNGHEZZA(SOSTITUISCI(CELLA("FILENAME");"/";"")));LUNGHEZZA(CELLA("FILENAME"))-RICERCA(CODICE.CARATT(254);SOSTITUISCI(CELLA("FILENAME");"/";CODICE.CARATT(254);LUNGHEZZA(CELLA("FILENAME"))-LUNGHEZZA(SOSTITUISCI(CELLA("FILENAME");"/";"")))));1;RICERCA(".ods";DESTRA(SOSTITUISCI(CELLA("FILENAME");"/";CODICE.CARATT(254);LUNGHEZZA(CELLA("FILENAME"))-LUNGHEZZA(SOSTITUISCI(CELLA("FILENAME");"/";"")));LUNGHEZZA(CELLA("FILENAME"))-RICERCA(CODICE.CARATT(254);SOSTITUISCI(CELLA("FILENAME");"/";CODICE.CARATT(254);LUNGHEZZA(CELLA("FILENAME"))-LUNGHEZZA(SOSTITUISCI(CELLA("FILENAME");"/";""))))))+3)
Re: Inserire comando di campo su calc
Inviato: domenica 11 novembre 2012, 16:16
da Attilafdd
Per chi è interessato a sviscerare la formula.
la partenza è data dalla funzione
(denominiamola _1F_ ossia prima formula) che però restituisce un output simile a:
'file:///media/Penna USB/Archivio/Informatica/Libreoffice/File di test.ods'#$Foglio3
tutto il resto della formula serve per estrarre da questo output solamente "File di test" o nel secondo caso "File di test.ods"
i passaggi che ho seguito sono:
1) sostituzione del carattere "/" prima del nome del file con CODICE.CARATT(254) (in modo da avere un carattere univoca da ricercare per applicare "destra" e "stringa estrai")
Codice: Seleziona tutto
=SOSTITUISCI(_1F_;"/";CODICE.CARATT(254);LUNGHEZZA(_1F_)-LUNGHEZZA(SOSTITUISCI(_1F_;"/";"")))
(denominiamola _2F_ ossia seconda formula)
2) eliminazione di tutto il percorso (cioè di tutto ciò che precede il CODICE.CARATT(254) che ho appena usato come marcatore di inizio del nome file) mediante la funzione DESTRA
Codice: Seleziona tutto
=DESTRA(_2F;LUNGHEZZA(_1F_)-RICERCA(CODICE.CARATT(254);_2F_))
(denominiamola _3F_ terza formula)
ottenendo un output simile a
File di test.ods'#$Foglio3
3) eliminazione della coda (da .ods in poi nel primo caso e dopo .ods nel secondo) mediante ricerca della stringa ".osd" nel nome residuo e mediante la funzione STRINGA.ESTRAI
oppure
per aggiungere l'estensione
Re: Inserire comando di campo su calc
Inviato: domenica 11 novembre 2012, 17:09
da patel
Attilafdd ha scritto:patel ha scritto:non mi sembra che esista una funzione di calc per ottenere il nome del documento corrente......
In effetti non esiste ....
Bravo Attilafdd ! però hai dimostrato che esiste eccome, è un po' troppo completa, ma basta elaborarla che hai mostrato tu, mi sembra che questo risolva il problema
Re: Inserire comando di campo su calc
Inviato: domenica 11 novembre 2012, 17:55
da l.tor
grazie tante per la disponibilità
soltanto che non devo inserire il nome del file ma il titolo del file (come dicevo, quello che viene indicato tramite file -> proprietà -> descrizione)
sarebbe possibile? come? grazie ancora