Buongiorno. Pongo alla vostra gentile attenzione un problema che non so se si possa risolvere tramite una macro o una semplice formula. Si tratta in pratica di contare entro un determinato range il numero delle celle (quante di esse) hanno lo stesso colore (nel caso specifico il giallo). Nel file d'esempio in allegato,ho inserito una macro ma sul totale in C1 mi dà 0 (zero). Questa è la macro (errata). Una buona giornata
REM ***** BASIC *****
Sub Module1
oRange=ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("A1:A9")
somma=0
For i=0 To oRange.Rows.Count-1
oCosa=Orange.getCellByPosition(0,i)
If RGB(255,255,0)=oCosa.CellBackColor then
somma=somma+oCosa.Value
End If
Next
ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("C1").Value=somma
End Sub
[Risolto] Macro o formula somma colore
[Risolto] Macro o formula somma colore
- Allegati
-
- macro somma colore.ods
- (9.68 KiB) Scaricato 49 volte
Ultima modifica di Westham il giovedì 8 giugno 2023, 18:10, modificato 3 volte in totale.
Libre Office 7.3.2.2
Re: Macro o formula somma colore
Ciao
la macro che hai scritto ti da la somma dei valori delle celle con sfondo giallo. infatti popolando l'area A1:A9 con numeri esce la somma che è diversa da zero.
Se vuoi solo contare le celle con sfondo giallo ti basta sostituire
con
la macro che hai scritto ti da la somma dei valori delle celle con sfondo giallo. infatti popolando l'area A1:A9 con numeri esce la somma che è diversa da zero.
Se vuoi solo contare le celle con sfondo giallo ti basta sostituire
Codice: Seleziona tutto
somma=somma+oCosa.Value
Codice: Seleziona tutto
somma=somma+1
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 o formula somma colore
Grazie mille Unlucky. Funziona. Ancora una cosa per favore : oltre al valore del colore giallo,volessi aggiungere in C2 la quantità del verde,sempre nella colonna da A1 a A9 che in questo caso ho leggermente modificato (come vedi nel file ci sono ora 5 celle in giallo e 4 verdi),cosa devo variare nella macro ? Tra l'altro in Libre Office non riesco a combinare l'RGB esatto del verde. So che esso corrisponde a 0-255-0 ma in Libre Office ci sono....50 tipi di verde e non riesco ad azzeccare quello giusto.....
- Allegati
-
- macro somma colore esempio 2.ods
- (10.04 KiB) Scaricato 47 volte
Libre Office 7.3.2.2
Re: Macro o formula somma colore
Partiamo dall'assegnazione del colore in libreoffice. Nell'immagine seguente puoi vedere il menu a tendina che si apre quando si clicca sull'icona "colore di sfondo"
Una leggera modifica alla tua macro può essere:
Io però suggerisco questa macro che preleva il colore della cella C1 e C2 e tramite i colori di queste due celle conta le celle che hanno lo stesso sfondo.
Allego file con quest'ultima macro associata all'avento.
Se selezioni il colore personalizzato puoi impostare il colore assegnando la numerazione RGB.Una leggera modifica alla tua macro può essere:
Codice: Seleziona tutto
Sub Module1
oRange=ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("A1:A9")
somma1=0
somma2=0
For i=0 To oRange.Rows.Count-1
oCosa=Orange.getCellByPosition(0,i)
If RGB(255,255,0)=oCosa.CellBackColor then
somma1=somma1+1
ElseIf RGB(0,255,0)=oCosa.CellBackColor then
somma2=somma2+1
End If
Next
ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("C1").Value=somma1
ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("C2").Value=somma2
End Sub
Codice: Seleziona tutto
Sub Contacolore
oRange=ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("A1:A9")
RGB1=ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("C1").CellBackColor
RGB2=ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("C2").CellBackColor
somma1=0
somma2=0
For i=0 To oRange.Rows.Count-1
oCosa=Orange.getCellByPosition(0,i)
If RGB1=oCosa.CellBackColor then
somma1=somma1+1
ElseIf RGB2=oCosa.CellBackColor then
somma2=somma2+1
End If
Next
ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("C1").Value=somma1
ThisComponent.Sheets.getbyname("foglio1").getcellrangebyname("C2").Value=somma2
End Sub
- Allegati
-
- macro somma colore esempio 2.ods
- (9.13 KiB) Scaricato 45 volte
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