Re: [it-users] scrivere una parola in una cella

2017-07-06 Per discussione beppe



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


Re: [it-users] scrivere una parola in una cella

2017-07-05 Per discussione Renato Pontefice
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

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
>
> --
> 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


Re: [it-users] scrivere una parola in una cella

2017-07-04 Per discussione beppe

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

--
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


Re: [it-users] scrivere una parola in una cella

2017-07-03 Per discussione Renato Pontefice
Ciao Beppe,
non sai quanto bene mi ha fatto la tua mail che spiega passo passo.
Ho realizzato (in questi giorni) gran parte di quello che volevo fare
(creato una macro, assegnata ad un tasto, scrive un paio dicose) e tutto
funziona.
La cosa che mi è rimasta (credo sia una mera istruzione che però non
conosco) è:
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

Il giorno ven 30 giu 2017 alle ore 00:47 Giovanni <
giovanni.sardi...@gmail.com> ha scritto:

> Beppe, sei un tutorial umano! Grazie mille, questa tua mail è davvero
> preziosa :)
>
> Il ven 30 giu 2017, 00:03 beppe  ha scritto:
>
>> Il 29/06/2017 12:26, Renato Pontefice ha scritto:
>> > Sono quasi giunto alla fine del mio lavoro. Mi rimane solo da:
>> > scrivere una cosa (per esempio "ciao" in una cella)
>> > la macro, verra poi eseguita premendo un pulsante.
>> >
>> > Quale è la sintassi per fare questa cosa?
>> > Nel senso:
>> > quale codice deve contenere la macro che esegue la cosa?
>> >
>> > Grazie
>> >
>> > Renato
>> >
>> Per imparare ad usare le macro ho usato questo libro e tante ricerche su
>> internet:
>> http://www.pitonyak.org/OOME_3_0.pdfpagina 470 (473)
>> http://www.pitonyak.org/oo.php
>> e non le so ancora usare bene...
>>
>> prova a registrare una macro per capire come funzionano:
>> (per poterlo fare bisogna attivare in Strumenti->Opzioni->Avanzate
>>   Abilita le funzionalita' sperimentali e Abilita la registrazione di
>> macro)
>>
>> da: Strumenti->Macro->Registra_macro
>> fai un click sulla cella B6
>> scrivi prova
>> premi invio
>> sulla finestrella apparsa quando hai scelto Registra_macro fai click su
>> termina registrazione
>> appare la finestra Macro di LibreOfficeBasic
>> scegli registra macro in: fai click sul + del nome del file di prova che
>> stai usando
>> click sul + di standard e in basso a destra scegli nuovo_modulo
>> vuoi sovrascrivere la macro main rispondi si
>> a questo punto la macro e' registrata.
>>
>> da: Strumenti->Macro->Organizza_macro->LibreOfficeBasic
>> scegli Module1->Modifica
>> qui modifichi sub Main in sub Scrivi_su_cella_corrente
>>
>> sub Scrivi_su_cella_corrente
>> rem in realta' non scrive nella cella corrente, ma in B6 -
>>
>> rem define variables -
>> dim document   as object
>> dim dispatcher as object
>>
>> rem get access to the document ---
>> document   = ThisComponent.CurrentController.Frame
>> dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
>>
>> rem ---va alla cella B6 -
>> dim args1(0) as new com.sun.star.beans.PropertyValue
>> args1(0).Name = "ToPoint"
>> args1(0).Value = "$B$6"
>>
>> dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
>>
>> rem ---scrive nella cella corrente prova -
>> dim args2(0) as new com.sun.star.beans.PropertyValue
>> args2(0).Name = "StringName"
>> args2(0).Value = "prova"
>>
>> dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
>>
>> rem ---premendo invio va alla cella successiva ---
>> dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0,
>> Array())
>>
>> end sub
>>
>> Se vuoi scrivere nella cella corrente sostituisci la riga:
>> args1(0).Value = "$B$6"
>> con
>> args1(0).Value = ThisComponent.CurrentSelection
>>
>> le righe con rem sono i commenti.
>> Le macro che scrivi le puoi salvare in formato testo con il pulsante
>> salva_basic
>> e le salva in formato .bas
>>
>> Per abbinarla ad un pulsante della barra standard nel file stesso
>> Strumenti->Personalizza->Barre_degli_strumenti->standard
>> Aggiungi
>> in Sezione scendi fino a LibreOffice-Macro click su + e su Standard e su
>> Module1
>> in Comandi scegli Scrivi_su_cella_corrente
>> e ti appare Scrivi_su_cella_corrente sulla barra degli strumenti standard.
>>
>> se vuoi puoi usare un'icona sempre da personalizza->barra_strumenti
>> scegli la nuova voce aggiunta poi cambia->cambia_icona
>>
>> Spero di aver capito cosa avevi bisogno.
>>
>> Scusa se ti ho mandato una mail con spiegazione passo passo,
>> ma non sapevo come conoscevi LibreOffice.
>>
>> 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?
>> 

Re: [it-users] scrivere una parola in una cella

2017-06-29 Per discussione Giovanni
Beppe, sei un tutorial umano! Grazie mille, questa tua mail è davvero
preziosa :)

Il ven 30 giu 2017, 00:03 beppe  ha scritto:

> Il 29/06/2017 12:26, Renato Pontefice ha scritto:
> > Sono quasi giunto alla fine del mio lavoro. Mi rimane solo da:
> > scrivere una cosa (per esempio "ciao" in una cella)
> > la macro, verra poi eseguita premendo un pulsante.
> >
> > Quale è la sintassi per fare questa cosa?
> > Nel senso:
> > quale codice deve contenere la macro che esegue la cosa?
> >
> > Grazie
> >
> > Renato
> >
> Per imparare ad usare le macro ho usato questo libro e tante ricerche su
> internet:
> http://www.pitonyak.org/OOME_3_0.pdfpagina 470 (473)
> http://www.pitonyak.org/oo.php
> e non le so ancora usare bene...
>
> prova a registrare una macro per capire come funzionano:
> (per poterlo fare bisogna attivare in Strumenti->Opzioni->Avanzate
>   Abilita le funzionalita' sperimentali e Abilita la registrazione di
> macro)
>
> da: Strumenti->Macro->Registra_macro
> fai un click sulla cella B6
> scrivi prova
> premi invio
> sulla finestrella apparsa quando hai scelto Registra_macro fai click su
> termina registrazione
> appare la finestra Macro di LibreOfficeBasic
> scegli registra macro in: fai click sul + del nome del file di prova che
> stai usando
> click sul + di standard e in basso a destra scegli nuovo_modulo
> vuoi sovrascrivere la macro main rispondi si
> a questo punto la macro e' registrata.
>
> da: Strumenti->Macro->Organizza_macro->LibreOfficeBasic
> scegli Module1->Modifica
> qui modifichi sub Main in sub Scrivi_su_cella_corrente
>
> sub Scrivi_su_cella_corrente
> rem in realta' non scrive nella cella corrente, ma in B6 -
>
> rem define variables -
> dim document   as object
> dim dispatcher as object
>
> rem get access to the document ---
> document   = ThisComponent.CurrentController.Frame
> dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
>
> rem ---va alla cella B6 -
> dim args1(0) as new com.sun.star.beans.PropertyValue
> args1(0).Name = "ToPoint"
> args1(0).Value = "$B$6"
>
> dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
>
> rem ---scrive nella cella corrente prova -
> dim args2(0) as new com.sun.star.beans.PropertyValue
> args2(0).Name = "StringName"
> args2(0).Value = "prova"
>
> dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
>
> rem ---premendo invio va alla cella successiva ---
> dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
>
> end sub
>
> Se vuoi scrivere nella cella corrente sostituisci la riga:
> args1(0).Value = "$B$6"
> con
> args1(0).Value = ThisComponent.CurrentSelection
>
> le righe con rem sono i commenti.
> Le macro che scrivi le puoi salvare in formato testo con il pulsante
> salva_basic
> e le salva in formato .bas
>
> Per abbinarla ad un pulsante della barra standard nel file stesso
> Strumenti->Personalizza->Barre_degli_strumenti->standard
> Aggiungi
> in Sezione scendi fino a LibreOffice-Macro click su + e su Standard e su
> Module1
> in Comandi scegli Scrivi_su_cella_corrente
> e ti appare Scrivi_su_cella_corrente sulla barra degli strumenti standard.
>
> se vuoi puoi usare un'icona sempre da personalizza->barra_strumenti
> scegli la nuova voce aggiunta poi cambia->cambia_icona
>
> Spero di aver capito cosa avevi bisogno.
>
> Scusa se ti ho mandato una mail con spiegazione passo passo,
> ma non sapevo come conoscevi LibreOffice.
>
> 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
>

-- 
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


[it-users] scrivere una parola in una cella

2017-06-29 Per discussione Renato Pontefice
Sono quasi giunto alla fine del mio lavoro. Mi rimane solo da:
scrivere una cosa (per esempio "ciao" in una cella)
la macro, verra poi eseguita premendo un pulsante.

Quale è la sintassi per fare questa cosa?
Nel senso:
quale codice deve contenere la macro che esegue la cosa?

Grazie

Renato

-- 
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