[Risolto] Macro per evidenziare celle con lo stesso colore parte 2
[Risolto] Macro per evidenziare celle con lo stesso colore parte 2
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
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 120 volte
Ultima modifica di Nando69 il martedì 24 maggio 2022, 21:43, modificato 2 volte in totale.
Libre Office 7.3.0.3
Re: Macro per evidenziare celle con lo stesso colore parte 2
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?...
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
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
Re: Macro per evidenziare celle con lo stesso colore parte 2
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
Re: Macro per evidenziare celle con lo stesso colore parte 2
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
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
Re: Macro per evidenziare celle con lo stesso colore parte 2
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
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
Re: Macro per evidenziare celle con lo stesso colore parte 2
.
Errore tuo nel collegare la macro all'evento documento “Attiva documento”.
La macro di @unluckyu83 va invece collegata all'evento foglio “Selezione 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 77 volte
Re: Macro per evidenziare celle con lo stesso colore parte 2
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
Re: Macro per evidenziare celle con lo stesso colore parte 2
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
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
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
Re: Macro per evidenziare celle con lo stesso colore parte 2
Perfetto,grazie mille Andrea
Libre Office 7.3.0.3