[Risolto] Macro per evidenziare celle con lo stesso colore parte 2

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Nando69
Messaggi: 484
Iscritto il: lunedì 21 settembre 2020, 11:03

[Risolto] Macro per evidenziare celle con lo stesso colore parte 2

Messaggio da Nando69 »

Salve a tutti. Questo tema ricalca quello postato dal sottoscritto tempo fa ma in quest'ultimo caso si presenta in maniera forse più articolata. Prendendo spunto dal file denominato "File 1 ecc.",avrei bisogno che i valori del range E1-G5 e I1-K5 si potessero colorare e adeguare automaticamente di giallo (o qualsiasi altra tinta) spostando semplicemente il cursore (cambiando quindi soltanto la selezione della cella) a seconda di quelle che presentano già un colore nel range A1-C5. Nell'argomento del 16 dicembre 2021 il bravissimo Unlucky83 mi aveva creato una macro che andava a modificare una singola cella (vedi file 2). Il codice in questione era questo :

sub Main
Doc=ThisComponent
oSh=Doc.Sheets(0)
oCell1=oSh.getcellRangeByName("A4")
oCell2=oSh.getcellRangeByName("A1")
If oCell1.CellBackColor<>oCell2.CellBackColor Then
oCell2.CellBackColor=oCell1.CellBackColor
End If
end sub



Mi servirebbe adesso un tipo di macro che potesse eseguire quanto spiegato in precedenza,con un area di celle cioè più estesa. Nel file 1,i ranges
E1-G5 e I1-K5 sono stati lasciati volutamente in bianco. Grazie
Allegati
File 1 per evidenziare più celle con lo stesso colore.ods
(10.77 KiB) Scaricato 86 volte
File 2 con macro inclusa per evidenziare 2 singole celle con lo stesso colore.ods
(10.1 KiB) Scaricato 117 volte
Ultima modifica di Nando69 il martedì 24 maggio 2022, 21:43, modificato 2 volte in totale.
Libre Office 7.3.0.3
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Macro per evidenziare celle con lo stesso colore parte 2

Messaggio da unlucky83 »

Ciao
Non è chiaro cosa vorresti. Riferendosi al file 1 che hai allegato, se selezion1 A1 che deve succedere? Se selezioni A2 che deve succedere? Se selezioni A3 che deve succedere?...
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
Nando69
Messaggi: 484
Iscritto il: lunedì 21 settembre 2020, 11:03

Re: Macro per evidenziare celle con lo stesso colore parte 2

Messaggio da Nando69 »

Ciao. Prima di entrare nel dettaglio chiarisco una cosa fondamentale,vale a dire : le celle dei ranges E1-G5 e I1-K5 (come puoi notare nel file 1),sono collegate tramite formule direttamente a quelle del range A1-C5. E1 e I1 perciò sono collegate alla cella A1,F1 e J1 collegate a B1 eccetera. Detto questo il range A1-C5 deve restare immutato così com'è. Le celle che devono cambiare colore sono quelle comprese nei ranges E1-G5 e I1-K5,semprechè fra le celle del range A1-C5 sia evidenziato il giallo. In pratica se ho il cursore posizionato ade esempio in A1,spostandolo da lì verso qualunque altra area del foglio (cambiando quindi soltanto la selezione della cella),le celle E1 e I1 si devono adeguare automaticamente di giallo così come è la cella A1 (perchè essa ha il colore). Idem per quanto riguarda G1 e K1 che sono collegate a C1 (anch'essa ha il colore). F1 e J1 al contrario devono rimanere in bianco perchè la cella B1 (collegata ad esse tramite le solite formule) è in bianco. Per tutte le altre celle restanti vale lo stesso discorso di cui sopra. Spero di aver chiarito meglio il concetto. Se riesci a crearmi una macro che possa eseguire quanto spiegato finora (un pò come avevi fatto a suo tempo con la macro inclusa nel file 2 e che ti ho scritto nel messaggio precedente),te ne sarei grato. Una buona serata
Libre Office 7.3.0.3
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Macro per evidenziare celle con lo stesso colore parte 2

Messaggio da unlucky83 »

Prova questa.

Codice: Seleziona tutto

sub Main
Doc=ThisComponent
oSh=Doc.Sheets(0)
oCell1=oSh.getcellRangeByName("A1:C5")
for r=Ocell1.RangeAddress.StartRow To Ocell1.RangeAddress.EndRow
	for c=Ocell1.RangeAddress.StartColumn To Ocell1.RangeAddress.Endcolumn
		oSh.getcellByPosition(c+4,r).CellBackColor=oSh.getcellByPosition(c,r).CellBackColor
		oSh.getcellByPosition(c+8,r).CellBackColor=oSh.getcellByPosition(c,r).CellBackColor
	Next
Next
end sub
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
Nando69
Messaggi: 484
Iscritto il: lunedì 21 settembre 2020, 11:03

Re: Macro per evidenziare celle con lo stesso colore parte 2

Messaggio da Nando69 »

Ciao Andrea. Ho provato,ma il tutto funziona in modo assolutamente anomalo. Ti spiego : aprendo il file con la macro inserita,le celle nei ranges
E1-G5 e I1-K5 che tramite formula sono collegate a quelle del range A1-C5,vengono automaticamente evidenziate in giallo e questo senza aver fatto
alcuna operazione meccanica (mouse o tastiera) da parte mia. La mia necessità sta nel fatto che i ranges E1-G5 e I1-K5 all'apertura del file dovrebbero rimanere in bianco e solo quando inserisco il colore in una delle celle del range A1-C5 (con relativo spostamento del cursore),esse dovrebbero adeguarsi alla cella madre (a seconda ovviamente delle rispettive interconnessioni (A1 con E1/I1,B1 CON F1/J1 eccetera). Oltre a questo,provando altresì a mettere ad esempio in cella A1 il rosso,le celle E1 e I1 rimangono in giallo invece che modificare il colore. Ti mando il file con la macro attiva in modo che tu possa comprendere meglio questo aspetto. Una buona giornata
Allegati
File 1 per evidenziare più celle con lo stesso colore.ods
(12.09 KiB) Scaricato 83 volte
Libre Office 7.3.0.3
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2991
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Macro per evidenziare celle con lo stesso colore parte 2

Messaggio da lucky63 »

Nando69 ha scritto: lunedì 23 maggio 2022, 16:34 il tutto funziona in modo assolutamente anomalo
.
Errore tuo nel collegare la macro all'evento documentoAttiva documento”.

La macro di @unluckyu83 va invece collegata all'evento foglioSelezione modificata”.
Con il mouse fare “click destro” sull'etichetta del nome foglio posta in basso a sinistra nello schermo > Eventi foglio > Selezione modificata > … segui percorso macro …
.
Allego il file con la modifica apportata in tal senso.
.
Allegati
File 1 per evidenziare più celle con lo stesso colore - 01.ods
(12.84 KiB) Scaricato 73 volte
Nando69
Messaggi: 484
Iscritto il: lunedì 21 settembre 2020, 11:03

Re: Macro per evidenziare celle con lo stesso colore parte 2

Messaggio da Nando69 »

Perfetto,funziona. Grazie Lucky. Se mi spieghi soltanto perchè in questo contesto (questa volta) occorre collegare la macro all'evento foglio “Selezione modificata” e non invece al solito "evento documento/attiva documento”. Grazie
Libre Office 7.3.0.3
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Macro per evidenziare celle con lo stesso colore parte 2

Messaggio da unlucky83 »

Il motivo è semplice.
Tu vuoi che là macro sia eseguita in automatico quando modifichi una cella e non aspettare che venga eseguita quando cambi il foglio di lavoro.
Anche nel file 2 che hai allegato, l’evento a cui avevo associato là macro era quello indicato da @lucky63
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
Nando69
Messaggi: 484
Iscritto il: lunedì 21 settembre 2020, 11:03

Re: Macro per evidenziare celle con lo stesso colore parte 2

Messaggio da Nando69 »

Perfetto,grazie mille Andrea
Libre Office 7.3.0.3
Rispondi