[Risolto] Dialog e variabili pubbliche
[Risolto] Dialog e variabili pubbliche
Salve a tutti!
Ho un problema con un dialog in un foglio di calc. Le macro sono molte e suddivise in vari moduli.Nel primo modulo c'è l'istruzione che crea il dialog
DialogLibraries.LoadLibrary( "Standard" )
oDialogo = CreateUnoDialog( DialogLibraries.Standard.HomeDlg)
e ho impostato oDialogo come variabile oggetto globale.
Ora se scrivo un'istruzione in un'altro modulo es: odialogo.getcontrol("prova") e provo ad eseguire il codice con F8 mi restituisce l'errore "variabile dell'oggetto non impostata".
Questo non accade se la stessa istruzione la eseguo nella sub in cui creo il dialog.
Ora tutto ciò non sarebbe un problema in quanto le macro vengono eseguite correttamente senza generare errori che ne arrestano l'esecuzione.
Il problema sorge quando utilizzo la funzione on error goto.
esempio
sub prorva
on error goto errore
test = odialogo.getcontrol("prova")
errore:
Msg "attenzione errore"
end sub
Ecco in questo caso apparirà sempre il messaggio "attenzione errore" anche se non sono occorsi errori gravi che arrestano la macro.Questo perchè legge l'errore variabile oggetto non impostata nell'istruzione odialogo.getcontrol("prova").
Quindi perchè anche definendo odialogo public poi quando lo utilizzo restituisce l'errore "variabile oggetto non impostata"?
Grazie per l'attenzione.
Ho un problema con un dialog in un foglio di calc. Le macro sono molte e suddivise in vari moduli.Nel primo modulo c'è l'istruzione che crea il dialog
DialogLibraries.LoadLibrary( "Standard" )
oDialogo = CreateUnoDialog( DialogLibraries.Standard.HomeDlg)
e ho impostato oDialogo come variabile oggetto globale.
Ora se scrivo un'istruzione in un'altro modulo es: odialogo.getcontrol("prova") e provo ad eseguire il codice con F8 mi restituisce l'errore "variabile dell'oggetto non impostata".
Questo non accade se la stessa istruzione la eseguo nella sub in cui creo il dialog.
Ora tutto ciò non sarebbe un problema in quanto le macro vengono eseguite correttamente senza generare errori che ne arrestano l'esecuzione.
Il problema sorge quando utilizzo la funzione on error goto.
esempio
sub prorva
on error goto errore
test = odialogo.getcontrol("prova")
errore:
Msg "attenzione errore"
end sub
Ecco in questo caso apparirà sempre il messaggio "attenzione errore" anche se non sono occorsi errori gravi che arrestano la macro.Questo perchè legge l'errore variabile oggetto non impostata nell'istruzione odialogo.getcontrol("prova").
Quindi perchè anche definendo odialogo public poi quando lo utilizzo restituisce l'errore "variabile oggetto non impostata"?
Grazie per l'attenzione.
Ultima modifica di maxrome84 il venerdì 3 giugno 2016, 22:27, modificato 2 volte in totale.
Open Office 4 beta
windows 7
windows 7
Re: Dialog e variabili pubbliche
allega il file, sarà più facile capire e testare
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Dialog e variabili pubbliche
Mi dispiace, possibilità di allegare il file.Comunque il test è semplice.Basta creare il un modulo e dichiarare global la variabe ogetto. Poi in un' altro modulo utilizzare la variabile.A questo punto con F8 si può generare l'errore quando si utilizza odialog
Open Office 4 beta
windows 7
windows 7
Re: Dialog e variabili pubbliche
Ma se è così semplice potresti creare un esempio ed allegarlo come ti è stato chiesto....giusto ???
Dichiarando una variabile oggetto pubblica questa è visibile in tutto il progetto ma non puoi utilizzarla PRIMA di aver lanciato la routine che crea l'oggetto stesso, e mi sembra proprio quello che fai tu.
Quindi dichiari pubblica la variabile, lanci la routine che crea l'oggetto e solo dopo puoi utilizzare tale variabile in qualsiasi modulo, in poche parole averla dichiarata pubblica non equivale ad aver creato l'oggetto.
Ecco perchè serviva un esempio creato da te
Dichiarando una variabile oggetto pubblica questa è visibile in tutto il progetto ma non puoi utilizzarla PRIMA di aver lanciato la routine che crea l'oggetto stesso, e mi sembra proprio quello che fai tu.
Quindi dichiari pubblica la variabile, lanci la routine che crea l'oggetto e solo dopo puoi utilizzare tale variabile in qualsiasi modulo, in poche parole averla dichiarata pubblica non equivale ad aver creato l'oggetto.
Ecco perchè serviva un esempio creato da te
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Dialog e variabili pubbliche
Scusate, ma ieri ero materialmente impossibilitato ad allegare un esempio, non è che non lo volessi fare. Oggi dovrei farcela.
Comunque in merito alla tua risposta, avevo pensato la stessa cosa, ma allora perchè anche quando lancio la macro, e effettivamente creo l'ogetto oDialog poi la funzione on error goto mi restituisce l'errore "variabile non inizializzata" proprio quando utilizzo oDialog??
Comunque in merito alla tua risposta, avevo pensato la stessa cosa, ma allora perchè anche quando lancio la macro, e effettivamente creo l'ogetto oDialog poi la funzione on error goto mi restituisce l'errore "variabile non inizializzata" proprio quando utilizzo oDialog??
Open Office 4 beta
windows 7
windows 7
Re: Dialog e variabili pubbliche
Ecco finalmente sono riuscito ad allegare un esempio.Nel dialog premendo il pulsante esegue una semplice operazione e non dovrebbe rilevare l'errore!
Da notare che comunque senza la funzione on error goto la macro funziona correttamente senza generare errori.
HELP!
Da notare che comunque senza la funzione on error goto la macro funziona correttamente senza generare errori.
HELP!
- Allegati
-
- test.ods
- (11.17 KiB) Scaricato 171 volte
Open Office 4 beta
windows 7
windows 7
Re: Dialog e variabili pubbliche
Codice: Seleziona tutto
Sub prova
on error goto Errore
oDialogo.getControl("Campo1").text = "test"
exit sub
Errore:
MsgBox "messaggio errore"
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Dialog e variabili pubbliche
Infatti non ti serve l'istruzione on error gotomaxrome84 ha scritto: Da notare che comunque senza la funzione on error goto la macro funziona correttamente senza generare errori.
HELP!
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Dialog e variabili pubbliche
Be certo in questo esempio è inutile ma in macro piu complesse come ad esempio l'esportazione in pdf in un determinato percorso, se quest'ultimo dovesse risultare inesistenve vorrei gestire l'errore con on error goto ed evitare l'interruzzione della macro.Ma non posso farlo perchè comunque rileva questo errore della variabile non impostata.
Open Office 4 beta
windows 7
windows 7
Re: Dialog e variabili pubbliche
Allora devi fare come nell'esempio di patel
Per impedire l'esecuzione del codice di gestione degli errori quando non si verifica un errore bisogna inserire un'istruzione Exit Sub prima del codice inerente alla gestione dell'errore stesso.
Se non esci dalla routine la macro continuerà a leggere le istruzioni anche non in presenza di errori, ecco perché visualizzi il messaggio anche quando tutto procede bene.
Comunque questo non ha nulla a che fare con il dichiarare le variabili pubbliche o meno
Per impedire l'esecuzione del codice di gestione degli errori quando non si verifica un errore bisogna inserire un'istruzione Exit Sub prima del codice inerente alla gestione dell'errore stesso.
Se non esci dalla routine la macro continuerà a leggere le istruzioni anche non in presenza di errori, ecco perché visualizzi il messaggio anche quando tutto procede bene.
Comunque questo non ha nulla a che fare con il dichiarare le variabili pubbliche o meno
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Dialog e variabili pubbliche [RISOLTO]
Neanche mi ero accorto che mancava!!!!! Grazie infinite per l'aiuto!! Metto risolto al titolo!
Open Office 4 beta
windows 7
windows 7
Re: Dialog e variabili pubbliche
il Risolto deve essere messo nel titolo del primo post
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Dialog e variabili pubbliche [RISOLTO]
… ma non in maniera corretta: viewtopic.php?f=2&t=5661.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: [Risolto]Dialog e variabili pubbliche
Alla fine ce l'ho fatta! Spero....
Open Office 4 beta
windows 7
windows 7
Re: [Risolto]Dialog e variabili pubbliche
Grazie .
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org