[Risolto] Macro evidenzia cella come quando si seleziona man

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2997
Iscritto il: martedì 18 maggio 2010, 17:01

[Risolto] Macro evidenzia cella come quando si seleziona man

Messaggio da lucky63 »

.
Esempio: con il codice seguente posiziono il cursore in "Foglio1.B3"

Codice: Seleziona tutto

Sub PosizionaCursore
Doc = ThisComponent
Foglio = Doc.Sheets.getByName("Foglio1")
Cella = Foglio.getCellRangeByName("B3")
Doc.CurrentController.Select(cella)
End Sub
ma così facendo la cella B3 non appare come quando si seleziona manualmente con il click del mouse.
B3 non selezionata.png
B3 non selezionata.png (3.97 KiB) Visto 2413 volte
Come modifico il codice per avere la cella B3 "vista" come quando si seleziona manualmente con il click del mouse ?
B3 Selezionata.png
B3 Selezionata.png (3.28 KiB) Visto 2413 volte
.
Ultima modifica di lucky63 il mercoledì 9 ottobre 2019, 22:36, modificato 2 volte in totale.
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro posiziona cursore "visibile" in una cella

Messaggio da patel »

Mi associo alla domanda, oltretutto la cella non viene evidenziata come accade selezionando manualmente
-------------------
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
bobo779256
Messaggi: 161
Iscritto il: mercoledì 2 maggio 2012, 16:05

Re: Macro posiziona cursore "visibile" in una cella

Messaggio da bobo779256 »

Da me appare così eseguendo la macro, OO 4.1.6
Immagine

Il codice è questo, ma è lo stesso che hai messo tu

Codice: Seleziona tutto

sub seleziona
Sheet = thisComponent.Sheets.getByName("Foglio1")
Cell = Sheet.getCellRangeByName("B3")
ThisComponent.CurrentController.select(Cell)
end sub
Il cursore non è visibile ma se si digita qualcosa appare nella cella
OpenOffice 4.1.13 su Windows 10 PRO 64bit
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2997
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Macro posiziona su cella come quando seleziono manualmen

Messaggio da lucky63 »

Scusate ma devo aver posto male il quesito iniziale:
"Macro posiziona cursore "visibile" in una cella"
Che ora ho modificato in quello che credo essere più corretto:
"Macro posiziona su cella come quando seleziono manualmente"
(Vedasi seconda immagine nel post iniziale).

Test fatto inizialmente solo su LibreO627 che uso prevalentemente rispetto a Aoo.
Provato solo ora su AOo417 e la cella B3 appare evidenziata come indicato da @bobo779256.
Comportamento quindi nettamente diverso tra LibreO e AOo.

Allo stesso risultato desiderato ci so arrivare con altro/i metodo/i ma il codice indicato mi sembrava più semplice e banale da modificare e comunque mi interessava poterlo fare anche con quello o simile.
In definitiva la cella B3 deve apparire come quando si fa manualmente click Sx su una qualsiasi cella.
Come modifico il codice ?
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Macro evidenzia cella come quando si seleziona manualmen

Messaggio da unlucky83 »

Ciao, la risposta non ce l’ho, farò delle prove. Potrebbe anche darsi che c’è bisogno di fare un refresh della finestra.
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2997
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Macro evidenzia cella come quando si seleziona manualmen

Messaggio da lucky63 »

.
Ecco la soluzione.
.

Codice: Seleziona tutto

Sub VaiAllaCella
Doc = ThisComponent
Foglio = Doc.Sheets.getByName("Foglio1")
Cella = Foglio.getCellRangeByName("B3")
Doc.CurrentController.select(cella)
REM Seleziona un range vuoto
Range = Doc.createInstance("com.sun.star.sheet.SheetCellRanges")
Doc.CurrentController.Select(Range)
End Sub
A me funziona sia con LibreO627 che con AO417 .

Allego l'esempio usato per i test.
Allegati
Test - Macro Vai a cella B3.ods
(9.5 KiB) Scaricato 148 volte
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: [Risolto] Macro evidenzia cella come quando si seleziona

Messaggio da unlucky83 »

Ottimo :bravo:
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
bobo779256
Messaggi: 161
Iscritto il: mercoledì 2 maggio 2012, 16:05

Re: [Risolto] Macro evidenzia cella come quando si seleziona

Messaggio da bobo779256 »

:super:

Dato che era una cosa che interessava anche me, ho anch'io continuato a fare prove
Questa è uscita fuori col registratore di macro, ed è indipendente dal foglio che si usa

Codice: Seleziona tutto

sub Main
dim document, dispatcher as object
doc = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$3"
dispatcher.executeDispatch(doc, ".uno:GoToCell", "", 0, args1())
end sub
Come quest'altra, con aggiunta la parte finale del codice che hai messo tu, anche questa indipendente dal foglio che si usa

Codice: Seleziona tutto

Sub VaAllaCella
foglio = ThisComponent.getCurrentController().getActiveSheet()
Range = foglio.getCellRangeByName("B3")
ThisComponent.getCurrentController().Select(Range)
oRanges = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
ThisComponent.getCurrentController().Select(oRanges)
End Sub
Ciao, e alla prossima :)
OpenOffice 4.1.13 su Windows 10 PRO 64bit
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2997
Iscritto il: martedì 18 maggio 2010, 17:01

Re: [Risolto] Macro evidenzia cella come quando si seleziona

Messaggio da lucky63 »

Ok x Registratore di macro che già conoscevo.
L'altra è praticamente la stessa..

Per completezza preciso che l'esempio postato era semplicemente legato alla possibilità di usare quel codice in un contesto macro più complesso.

Per ulteriore completezza rappresento che se si vuole attuare un semplice ed esclusivo "vai a una determinata cella" ottenendola evidenziata come quando si fa click sx con il mouse si può fare anche senza macro ricorrendo alla funzione =COLLEGAMENTO() come come ad esempio:

Codice: Seleziona tutto

=COLLEGAMENTO("#Foglio1.b3";"Vai alla cella B3 del Foglio1")
oppure intervenendo direttamente sulle proprietà generali del pulsante come ad esempio:
Proprietà URL pulsante.png
... ecc...ecc...

Per chi volesse approfondire codice macro per modificare la proprietà URL del pulsante (e anche altre) rimando a questo link: https://wiki.openoffice.org/wiki/IT/Doc ... ment_Forms

Se qualche utente ha altre soluzioni è invitato a condividerle.
Un saluto a tutti.
.
bobo779256
Messaggi: 161
Iscritto il: mercoledì 2 maggio 2012, 16:05

Re: [Risolto] Macro evidenzia cella come quando si seleziona

Messaggio da bobo779256 »

Scusa, lucky63 o a chiunque vorrà rispondermi...

A volte mi inceppo su piccole cose, tipo questa qua:

Immagine

la didascalia del Pulsante 1 compreso nel file che hai allegato come soluzione è su due righe, come si fa? Con AOO non ci riesco, non c'è modo di mettere su più righe, o almeno io non lo so fare...




Allego file di prove con i collegamenti e selezione celle in base a giorno o mese, spunto per migliorare un foglio che uso quotidianamente, che possa essere di spunto anche ad altri...
Salut
Allegati
Test 03 - Macro Vai a cella B3.ods
(12.84 KiB) Scaricato 134 volte
OpenOffice 4.1.13 su Windows 10 PRO 64bit
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: [Risolto] Macro evidenzia cella come quando si seleziona

Messaggio da patel »

Dopo pulsante premi Shift Invio e ti va accapo
-------------------
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
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: [Risolto] Macro evidenzia cella come quando si seleziona

Messaggio da unlucky83 »

Lo shift invio lo puoi usare anche per mandare accapo il testo nelle celle. Addio usare una serie di spazi per visualizzare il testo su più righe :mrgreen:
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
bobo779256
Messaggi: 161
Iscritto il: mercoledì 2 maggio 2012, 16:05

Re: [Risolto] Macro evidenzia cella come quando si seleziona

Messaggio da bobo779256 »

Buono a sapersi ;)

Grazie

Che fò? Metto risolto + risolto ? :knock:
OpenOffice 4.1.13 su Windows 10 PRO 64bit
Rispondi