Il giorno mer 5 lug 2017 alle ore 00:58 beppe ha scritto:
Il 03/07/2017 11:50, Renato Pontefice ha scritto:
Ciao Beppe,
...
alla fine del compito (scivere nella cella in cui mi trovo un termine o l'
orario)
vorrei che il focus sia nella cella adiacente (cioè stessa riga, ma
colonna +1)
al momento queste istruzioni
rem --
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$D$11"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
dicono di spostarsi sempre alla cella D11
invece come posso dirgli:
spostati nella stessa riga,ma di una colonna in più
Mi sono spiegato?
Grazie ancora
Renato
Come prima cosa dobbiamo acquisire il valore della cella corrente:
Sub Cella_attiva
Dim colonna,riga,cella,valore
rem data + orario corrente
valore=Now()
rem data corrente
rem valore=date
rem valore numerico
rem valore=15
colonna = ThisComponent.getCurrentSelection.CellAddress.Column
riga= ThisComponent.getCurrentSelection.CellAddress.Row
print "cella corrente - colonna: "+colonna, " - riga: "+riga
ThisComponent.Sheets.getByIndex( 0 ).GetCellByPosition( colonna+1, riga
).SetValue(valore)
Print "scritto in: "+ chr(65+colonna+1) + (riga+1) + " valore: " + valore
End Sub
le righe con print le puoi commentare con rem e non si stampano
la cella A1 e' la colonna=0 e la riga=0
le celle nelle quali vuoi inserire la data o l'ora prima formattale come
data o come orario
qui c'e' tutta la documentazione che pero' non so sfruttare:
http://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sheet_1_1Spreadsheet.html
http://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star.html
ciao
Beppe
Il 05/07/2017 11:08, Renato Pontefice ha scritto:
Ciao,
fenomeni dell' informatica.
STAVO SCRIVENDO QUESTO
Ciao,
non pensare che non c' ho provato. c' ho provato e molto.
All' esecuzione della Macro, ottengo l' errore:
___
sono tornato sulla macro per copiare l' errore e potertelo spedire. Invece
tutto funziona.
Dire che sono sorpreso...è un eufemismo...perchè sono incavolato! C' ho
messo fino alle 11 per capire quale fosse il problema...
Ma ora sono felice :-)
tutto funziona
ho asegnato le varie macro a tasti funzione (che poi è la ragione del fare
una macro)
eposso così iniziare a compilare il mio foglio.
Mi rimane solo un ultima cosa:
una volta eseguita una macro, posso spostare il focus dall' attuale Colonna
(credo .cellAddress.Column) a .cellAddress.Column + 1?
Questa è una "rifinitura" :-)
Grazie ancora
Renato
Sub Cella_attiva
rem definire le variabili
dim document as Object
dim dispatcher as object
Dim colonna,riga,cella,valore
dim args1(0) as new com.sun.star.beans.PropertyValue
rem data + orario corrente
valore=Now()
colonna = ThisComponent.getCurrentSelection.CellAddress.Column
riga= ThisComponent.getCurrentSelection.CellAddress.Row
ThisComponent.Sheets.getByIndex( 0 ).GetCellByPosition( colonna+1,
riga ).SetValue(valore)
rem adesso ti posizioni nella cella che vuoi tu modificando i valori
colonna e riga
rem non sapendo con quale funzione spostarsi in una determinata cella
rem ho usato il registratore automatico di macro e
rem ho cambiato il valore della cella con le variabili colonna e riga
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
args1(0).Name = "ToPoint"
args1(0).Value = chr(36) + chr(65+colonna+1) + chr(36) + (riga+1)
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
end Sub
non so se i due simboli del $ chr(36) nella variabile servano o meno,
si posiziona comunque dove hai scritto il valore tempo
ciao
Beppe
--
le nuvole non hanno regole,
perchè non hanno mai rinunciato
alla libertà di sognare.
--
Come cancellarsi: E-mail users+unsubscr...@it.libreoffice.org
Problemi? http://it.libreoffice.org/supporto/mailing-lists/come-cancellarsi/
Linee guida per postare + altro:
http://wiki.documentfoundation.org/Local_Mailing_Lists/it
Archivio della lista: http://listarchives.libreoffice.org/it/users/
Tutti i messaggi inviati a questa lista vengono archiviati pubblicamente e non
sono eliminabili