Funzioni calc in libreria importata
-
- Messaggi: 7
- Iscritto il: lunedì 18 febbraio 2019, 13:52
Funzioni calc in libreria importata
Buongiorno,
ho questo problema.
Per motivi di sicurezza connesso all'uso delle macro, ho esportato i moduli memorizzati nella libreria standard del foglio di calcolo, in una libreria esterna che viene poi importata da altri utenti che usano il documento calc. Tutte le macro (Sub) funzionano una volta importata la libreria, ma purtroppo non funzionano le funzioni create da me (Function) da usare nelle formule. Innanzitutto mi sono accorto che inizialmente tali funzioni nelle celle del foglio di calcolo apparivano in caratteri minuscoli, e quindi le ho riscritte e sono state recepite (infatti sono tornate in caratteri maiuscoli). Tuttavia il risultato delle funzioni risulta sempre 'VALORE?'
Per controprova ho provato a creare ex novo una funzione molto semplice in un modulo della libreria importata :
Function ProvaLib(a)
b=a
ProvaLib = b
End Function
Inserito in A1 il valore "OK"
Compilato in A2 la formula =PROVALIB(A1)
Il risultato é 'VALORE?'
Naturalmente se compilo la stessa funzione nella libreria standard del documento il risultato è 'OK'
Chiedo quindi se qualcuno ha idea se questo funzionamento è normale, cioè se le funzioni create dall'utente possono risiedere solo nella libreria salvata sul documento, o se mi sfugge qualcosa.
Ringrazio dell'aiuto!
ho questo problema.
Per motivi di sicurezza connesso all'uso delle macro, ho esportato i moduli memorizzati nella libreria standard del foglio di calcolo, in una libreria esterna che viene poi importata da altri utenti che usano il documento calc. Tutte le macro (Sub) funzionano una volta importata la libreria, ma purtroppo non funzionano le funzioni create da me (Function) da usare nelle formule. Innanzitutto mi sono accorto che inizialmente tali funzioni nelle celle del foglio di calcolo apparivano in caratteri minuscoli, e quindi le ho riscritte e sono state recepite (infatti sono tornate in caratteri maiuscoli). Tuttavia il risultato delle funzioni risulta sempre 'VALORE?'
Per controprova ho provato a creare ex novo una funzione molto semplice in un modulo della libreria importata :
Function ProvaLib(a)
b=a
ProvaLib = b
End Function
Inserito in A1 il valore "OK"
Compilato in A2 la formula =PROVALIB(A1)
Il risultato é 'VALORE?'
Naturalmente se compilo la stessa funzione nella libreria standard del documento il risultato è 'OK'
Chiedo quindi se qualcuno ha idea se questo funzionamento è normale, cioè se le funzioni create dall'utente possono risiedere solo nella libreria salvata sul documento, o se mi sfugge qualcosa.
Ringrazio dell'aiuto!
LibreOffice 6.0 su Windows server 2018 e Ubuntu 18.04
-
- Messaggi: 7
- Iscritto il: lunedì 18 febbraio 2019, 13:52
Re: Funzioni calc in libreria importata
Correggo il post e aggiungo qualcosa: il risultato della formula che dovrebbe essere indirizzata all funzione nella libreria esterna al documento non è 'VALORE?' ma 'VALORE!'.
Ho provato a inserire nella funzione la riga 'print "OK!"' per verificare se la funzione viene eseguita e ho appurato che la funzione non viene eseguita! Questo è oltremodo strano, dato che sono certo che non esista in nessuna libreria nè interna nè esterna al documento una funzione con lo stesso nome, quindi il fatto che la formula venga compilata (i caratteri diventano maiuscoli) significa che la formula viene abbinata alla funzione corrispondente, eppure non viene eseguita!
Spero in qualche idea, grazie!
Ho provato a inserire nella funzione la riga 'print "OK!"' per verificare se la funzione viene eseguita e ho appurato che la funzione non viene eseguita! Questo è oltremodo strano, dato che sono certo che non esista in nessuna libreria nè interna nè esterna al documento una funzione con lo stesso nome, quindi il fatto che la formula venga compilata (i caratteri diventano maiuscoli) significa che la formula viene abbinata alla funzione corrispondente, eppure non viene eseguita!
Spero in qualche idea, grazie!
LibreOffice 6.0 su Windows server 2018 e Ubuntu 18.04
-
- Volontario
- Messaggi: 164
- Iscritto il: venerdì 9 giugno 2017, 13:48
Re: Funzioni calc in libreria importata
Ciao,
Le funzione personali vengono riconosciute del programma solo quando si trovano nella libreria "Standard" (sia quella del documento o quella del programma).
Purtroppo non è possibile importare direttamente nella libreria Standard. Sul forum francese c'è un documento del utente bm92, che consente di ovviare al problema: https://forum.openoffice.org/fr/forum/v ... 937#p44937.
Se necessario posso tradurlo.
Cordiali saluti.
Le funzione personali vengono riconosciute del programma solo quando si trovano nella libreria "Standard" (sia quella del documento o quella del programma).
Purtroppo non è possibile importare direttamente nella libreria Standard. Sul forum francese c'è un documento del utente bm92, che consente di ovviare al problema: https://forum.openoffice.org/fr/forum/v ... 937#p44937.
Se necessario posso tradurlo.
Cordiali saluti.
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Win7 + LinuxMint
-
- Messaggi: 7
- Iscritto il: lunedì 18 febbraio 2019, 13:52
Re: Funzioni calc in libreria importata
Ringrazio humbert per le veloce risposta. Dunque prendo atto che le "funzioni create dall'utente" non possono essere salvate su librerie condivise, peccato, mi pare una grande limitazione.
Non vado forte col francese ma, anche con l'aiuto del traduttore, faccio fatica a capire. Si suggerisce di salvare la macro nel documento (quindi il modulo nella libreria standard, suppongo), poi su un altro pc fare click su ripristina (?): questo non mi è chiaro. Se io trasferisco il documento su un'altro pc, troverò salvata nel documento la stessa macro e funzionerà perfettamente, credo. Il punto é che in questo modo non è possibile definire delle funzioni da usare nelle celle di calc che siano condivise tra più utenti, mantenendo la sicurezza delle macro a livello alto, come lo sarebbe se fossero in una libreria condivisa.
Capisco bene?
Non vado forte col francese ma, anche con l'aiuto del traduttore, faccio fatica a capire. Si suggerisce di salvare la macro nel documento (quindi il modulo nella libreria standard, suppongo), poi su un altro pc fare click su ripristina (?): questo non mi è chiaro. Se io trasferisco il documento su un'altro pc, troverò salvata nel documento la stessa macro e funzionerà perfettamente, credo. Il punto é che in questo modo non è possibile definire delle funzioni da usare nelle celle di calc che siano condivise tra più utenti, mantenendo la sicurezza delle macro a livello alto, come lo sarebbe se fossero in una libreria condivisa.
Capisco bene?
LibreOffice 6.0 su Windows server 2018 e Ubuntu 18.04
-
- Volontario
- Messaggi: 164
- Iscritto il: venerdì 9 giugno 2017, 13:48
Re: Funzioni calc in libreria importata
Ecco il documento tradotto.
Se non mi sbaglio, basta salvare una volta la libreria Standard originale nel documento, quindi condividerlo. L'utente fa clic su "Ripristina" per sostituire quella libreria Standard dal suo PC.
Ma ovviamente neanche quello sarà possibile mantenendo la sicurezza delle macro a livello alto.
L'ottima soluzione sarebbe di creare un estensione, ma questo non è possibile con il basic, ed è un problema completamente diverso...
Se non mi sbaglio, basta salvare una volta la libreria Standard originale nel documento, quindi condividerlo. L'utente fa clic su "Ripristina" per sostituire quella libreria Standard dal suo PC.
Ma ovviamente neanche quello sarà possibile mantenendo la sicurezza delle macro a livello alto.
L'ottima soluzione sarebbe di creare un estensione, ma questo non è possibile con il basic, ed è un problema completamente diverso...
- Allegati
-
- SIE.odt
- (17.77 KiB) Scaricato 129 volte
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Win7 + LinuxMint
-
- Messaggi: 7
- Iscritto il: lunedì 18 febbraio 2019, 13:52
Re: Funzioni calc in libreria importata
Per il vero si possono facilmente creare delle estensioni con le quali installare le macro basic su altri utenti, ma non ci avevo pensato. Ci provo e faccio sapere com'è andata.
LibreOffice 6.0 su Windows server 2018 e Ubuntu 18.04
-
- Volontario
- Messaggi: 164
- Iscritto il: venerdì 9 giugno 2017, 13:48
Re: Funzioni calc in libreria importata
Si, ma anche in questo caso non potrai utilizzare la libreria Standard.
Pensavo sopratutto a un estensione tipo "addin", che permette di aggiungere nuove funzione a Calc. C'è un esempio lì, per il cui avevo promesso un tutoriel che non ho mai scritto
.
Proverò a trovare del tempo se fossi interessato...
Pensavo sopratutto a un estensione tipo "addin", che permette di aggiungere nuove funzione a Calc. C'è un esempio lì, per il cui avevo promesso un tutoriel che non ho mai scritto

Proverò a trovare del tempo se fossi interessato...
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Win7 + LinuxMint
-
- Messaggi: 7
- Iscritto il: lunedì 18 febbraio 2019, 13:52
Re: Funzioni calc in libreria importata
Grazie, gli do un'occhiata
LibreOffice 6.0 su Windows server 2018 e Ubuntu 18.04
-
- Messaggi: 7
- Iscritto il: lunedì 18 febbraio 2019, 13:52
Re: Funzioni calc in libreria importata
Ho guardato il link proposto da Humbert, ma devo dire che mi pare una cosa un po' complicata, non ho trovato neanche molte indicazioni sul web riguardo gli addin.
Nel frattempo ho appurato che in realtà le funzioni che vengono memorizzate nelle librerie del documento possono essere utilizzate nelle formule anche se i moduli non sono nella libreria "standard", cioà anche in librerie dell'utente. Invece se le librerie sono esterne, allora nelle formule funzionano solo se sono nella "Standard".
Quello che mi risluta davvero molto strano ed incoerente è che comunque anche se la funzione è in una libreria esterna non standard, quando viene richiesta in una cella di calc, il programma la compila!
Questo vuol dire che la cerca in tutte le librerie (interne ed esterne al documento), la trova e la riconosce. Solo che non la esegue (questo l'ho verificato perchè ho inserito nella funzione la riga 'print "eseguo"' e non viene restituito mai alcun messaggio a video.
Ulteriore stranezza davvero singolare è che la formula restituisce come errore '#VALORE!" e nella barra di stato si legge: 'Tipo di dati errato', come se l'errore fosse nella struttura della formula!
Non riesco a capire come gli sviluppatori abbiano inteso la logica di tutto ciò e perchè, a questo punto, non consentire nelle formule l'esecuzione di funzioni dalle librerie-utente esterne, visto che vengono regolarmente cercate e riconosciute. Non è che si tratta di un errore?
Nel frattempo ho appurato che in realtà le funzioni che vengono memorizzate nelle librerie del documento possono essere utilizzate nelle formule anche se i moduli non sono nella libreria "standard", cioà anche in librerie dell'utente. Invece se le librerie sono esterne, allora nelle formule funzionano solo se sono nella "Standard".
Quello che mi risluta davvero molto strano ed incoerente è che comunque anche se la funzione è in una libreria esterna non standard, quando viene richiesta in una cella di calc, il programma la compila!
Questo vuol dire che la cerca in tutte le librerie (interne ed esterne al documento), la trova e la riconosce. Solo che non la esegue (questo l'ho verificato perchè ho inserito nella funzione la riga 'print "eseguo"' e non viene restituito mai alcun messaggio a video.
Ulteriore stranezza davvero singolare è che la formula restituisce come errore '#VALORE!" e nella barra di stato si legge: 'Tipo di dati errato', come se l'errore fosse nella struttura della formula!
Non riesco a capire come gli sviluppatori abbiano inteso la logica di tutto ciò e perchè, a questo punto, non consentire nelle formule l'esecuzione di funzioni dalle librerie-utente esterne, visto che vengono regolarmente cercate e riconosciute. Non è che si tratta di un errore?
LibreOffice 6.0 su Windows server 2018 e Ubuntu 18.04