In ogni caso ti allego un esempio.
:-( e pensare che la giornata si prospettava buona... :-)
Questo unolistener mi fa venire il mal di testa... ma se lo prendo come
un atto di fede forse me la cavo...
Nel limite delle mie (limitate) capacità provo a dare un piccolo contributo.
Premetto che a me funziona quasi perfettamente la macro di Paolo, ad
eccezione del fatto che apparentemente non rimuove il listener quando si
chiude la finestrella per la selezione ed ogni volta mi mostra un msgbox
in più risetto alla volta precedente, ma forse sfugge qualcosa anche a
me... :-)
Il listener è in pratica e molto poco "tecnicamente" (e sono pronto ad
essere smentito) un sistema che ti permette di lanciare una particolare
macro quando si genera un evento (in realtà credo sarebbe più corretto
dire che ti permette di individuare un evento ed associargli una macro),
ad esempio quando assegni una macro ad un pulsante potresti arrivare
allo stesso risultato tramite basic con due righe simili a queste:
sub assegaMacro
oButtonListener = createUnoListener("miaMacro_" ,
"com.sun.star.awt.XActionListener")
oDocView.addRangeSelectionListener (oButtonListener)
end sub
e creando poi una macro tipo:
sub miaMacro_actionPerformed(oEvent as object)
[vaire cose]
end sub
La prima macro serve a dire a basic che quando il pulsante contenuto
nell'oggetto viene premuto deve eseguire la macro "miaMacro_actionperformed"
Lo so, la descrizione è molto lacunosa, ma è un'inizio...
Qui invece mi inciampo... perchè vuole che si selezioni un range...
mentre a me interessa una cella e se l'utente cerca di selezionare un
range vorrei che una bacchetta calasse sulle sue dita... (mai fidarsi
dell'utente...)
A me accetta anche la selezione di una sola cella.
Sto ancora trafficando... ed ho provato a mettere Value = true... e
in questo modo la finestrella si chiude da sola (ottima cosa), ma non
ho ancora capito se in tal caso mi registra qualcosa...
Si!
Registra! (almeno a me...)
Comunque ho ingenuamente provato ad inserire in coda al tuo codice una
variabile che mi registrasse i risultati di tutto quel lavoro... ma la
cosa sembra non funzionare...
[cut]
Insomma a volte la fede non basta...
;-)
Credo la soluzione vada di pari passo con la comprensione delle Sub
che mi hai aggiunto dopo... ma - per il momento - non le ho capite...
Sei sicuro di avermi incollato tutto?
Ma questo oEvent da dove arriva? e sopratutto, dove va?
oEvent rappresenta (molto grossolanamente, ma solo perchè non son sicuro
nemmeno io) l'oggetto che ha "lanciato" l'evento.
sub oDocView_done(oEvent) MsgBox oEvent.RangeDescriptor
Ma questa ce l'hai su una sola riga?
La forma corretta sarebbe:
sub oDocView_done(oEvent) 'a capo
MsgBox oEvent.RangeDescriptor 'a capo
oEvent.source.removeRangeSelectionListener(oRangeSelectionListener) 'a
capo
End Sub
Si infatti mi piacerebbe molto avere la possibilità di una prompt del
tipo: "Seleziona la destinazione...."
Ed infatti visualizza l'indrizzo della cella selezionata!
Più in generale mi piacerebbe avere un codice del tipo:
Sub Sposta_una_Analisi
' .... dopo vari traballamenti e sbatacchiamenti (che ti risparmio)
' mi ritrovo, ad avere un range selezionato
oDestinazione = TestRangeSelection ' ma come function
' funzionerà ancora?
'estraggo i dati da oDestinazione localizzando la row
'faccio spazio con righe vuote e incollo il range di partenza
end sub
Qui molto altruisticamente ti lascio cercare la soluzione da te! :-)
Ciao!
Emanuele.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]