Re: [it-users] scrivere una parola in una cella
Il giorno mer 5 lug 2017 alle ore 00:58 beppeha 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
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 beppeha 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
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
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 beppeha 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
Beppe, sei un tutorial umano! Grazie mille, questa tua mail è davvero preziosa :) Il ven 30 giu 2017, 00:03 beppeha 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
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