Pagina 1 di 3

Somma se colore

Inviato: sabato 23 giugno 2018, 14:08
da capodimontemassimo
Buongiorno, ho una foglio di calcolo con le celle di una colonna colorate alcune di bianco ed altre di rosso , dovrei fare la somma di quelle con lo sfondo rosso. Chi può aiutarmi?

Re: somma se colore

Inviato: sabato 23 giugno 2018, 16:06
da unlucky83
la cosa si può fare solo con macro, a meno che non ci sia un criterio dietro alla scelta dello sfondo colorato

Re: somma se colore

Inviato: sabato 23 giugno 2018, 16:25
da capodimontemassimo
Non c’è criterio, come devo fare con macro?

Re: somma se colore

Inviato: sabato 23 giugno 2018, 16:29
da unlucky83
Sei capace a scrivere codice in basic? Perchè il registratore di macro non ti può aiutare

Re: somma se colore

Inviato: sabato 23 giugno 2018, 18:09
da capodimontemassimo
Non sono capace ascrivere in basic :roll:

Re: somma se colore

Inviato: sabato 23 giugno 2018, 19:02
da unlucky83
allora dovresti allegare il file così ti diamo una mano a scrivere il codice idoneo alle tue esigenze

Re: somma se colore

Inviato: sabato 23 giugno 2018, 21:41
da capodimontemassimo
unlucky83 ha scritto:allora dovresti allegare il file così ti diamo una mano a scrivere il codice idoneo alle tue esigenze

Allego il file.

Re: somma se colore

Inviato: sabato 23 giugno 2018, 22:03
da unlucky83
perchè il file è in xls? i file di openoffice e libreoffice hanno estensione ods e il linguaggio delle macro di questi programmi è differente da quello di Excel.

Re: somma se colore

Inviato: sabato 23 giugno 2018, 23:34
da capodimontemassimo
unlucky83 ha scritto:perchè il file è in xls? i file di openoffice e libreoffice hanno estensione ods e il linguaggio delle macro di questi programmi è differente da quello di Excel.
Ho allegerito il foglio e nel salvarlo l'ho fatto in xls, ora allego lo stesso in ods.

Re: somma se colore

Inviato: domenica 24 giugno 2018, 10:28
da patel
la tabella ha dimensioni fisse ? la somma sta sempre nella stessa cella ?

Re: somma se colore

Inviato: domenica 24 giugno 2018, 10:30
da capodimontemassimo
patel ha scritto:la tabella ha dimensioni fisse ? la somma sta sempre nella stessa cella ?
La tabella ha dimensioni fisse e la somma sta sempre nella stessa cella.

Re: somma se colore

Inviato: domenica 24 giugno 2018, 12:12
da unlucky83
Questa è la macro

Codice: Seleziona tutto

Sub SommaAranci
oRange=ThisComponent.Sheets.getbyname("1").getcellrangebyname("B4:B17")
somma=0
For i=0 To oRange.Rows.Count-1
oCosa=Orange.getCellByPosition(0,i)
	If RGB(255,51,0)=oCosa.CellBackColor then
		somma=somma+oCosa.Value
	End If
Next
ThisComponent.Sheets.getbyname("1").getcellrangebyname("B20").Value=somma
End Sub
Da modificare se rinomini il foglio e sposti le celle nel foglio o cambi colore

Re: somma se colore

Inviato: domenica 24 giugno 2018, 12:42
da capodimontemassimo
unlucky83 ha scritto:Questa è la macro

Codice: Seleziona tutto

Sub SommaAranci
oRange=ThisComponent.Sheets.getbyname("1").getcellrangebyname("B4:B17")
somma=0
For i=0 To oRange.Rows.Count-1
oCosa=Orange.getCellByPosition(0,i)
	If RGB(255,51,0)=oCosa.CellBackColor then
		somma=somma+oCosa.Value
	End If
Next
ThisComponent.Sheets.getbyname("1").getcellrangebyname("B20").Value=somma
End Sub
Da modificare se rinomini il foglio e sposti le celle nel foglio o cambi colore
Grazie unlucky83, avrei bisogno di un'ultimo aiuto . Come posso farla eseguire o aggiornare autonomamente ogni qualvolta coloro una cella?

Re: somma se colore

Inviato: domenica 24 giugno 2018, 13:25
da unlucky83
Al momento ti ho collegato la macro al pulsante. Per rendere l’aggiornamento automatico ogni volta che modifichi il foglio dovresti collegarlo all’evento del foglio:
Dal menu in alto "Foglio">"Foglio eventi"> seleziona "contenuto modificato" e clicca sul pulsante "Macro" sotto la voce Assegna, seleziona il documento prova2.ods e apri il suo elenco, poi apri Standard, Seleziona Module1 e infine seleziona la macro "SommaAranci". A questo punto premi su ok, in questa e nella finestra successiva

P.s.
Non è necessario che a ogni messaggio di risposta citi il messaggio precedente

Re: somma se colore

Inviato: domenica 24 giugno 2018, 18:08
da capodimontemassimo
Ho fatto come mi hai suggerito, riesco ad ottenere solo in parte quello che desidero, cioè funziona la macro fino a quando non chiudo il foglio ma non funziona l'aggiornamento della somma nel momento in cui coloro una nuova cella contenete un numero . Inoltre nel momento in cui vado a riaprire il foglio non funziona nemmeno la macro se eseguita manualmente.

Re: somma se colore

Inviato: domenica 24 giugno 2018, 19:19
da hubert lambert
Ciao,

Ho fatto, per un altro forum, un estensione countstyle.oxt per questo tipo di domanda.
L'estensione aggiungia due funzioni a Calc: CELLSTYLE e COUNTSTYLE.
CELLSTYLE restituisce lo stile della data cella:

Codice: Seleziona tutto

CELLSTYLE(A1)
COUNTSTYLE prevede tre argomenti, il terzo facoltativo:
- <range>: le celle di riferimento;
- <style>: lo stile da contare (sensibile al maiuscolo/minuscolo);
- <function>: un numero intero che rappresenta il tipo di operazione da eseguire.
Se il terzo argomento è omesso o uguale a 0, COUNTSTYLE conta semplicemente le celle dello stile specificato. Le altre funzioni sono:
1: calcola la somma delle celle
2: conta le celle non vuote
3: calcola la media
4: restituisce il valore massimo
5: restituisce il valore minimo
6: conta i valori numerici

Codice: Seleziona tutto

COUNTSTYLE(A1:A100;"rosso";1)
capodimontemassimo.png
Quelle funzione funzionano solo con gli stili di celle: il colore (quale: sfondo? carattere?...) applicato direttamente non è contato.
Non funziona con la formattazione condizionale: sarebbe troppo complicato, e basta contare con la stessa condiziona utilizzata per la formattazione.

Ogni tanto tradurrò l'estensione in italiano (per il momento esistono solo il francese e l'inglese).
Saluti.
 Editato: Eccola in italiano:
countstyle.oxt
aggiunta italiano
(6.22 KiB) Scaricato 330 volte
 

Re: somma se colore

Inviato: domenica 24 giugno 2018, 23:05
da capodimontemassimo
Ho provato ad installare la funzione senza riuscire.

Re: somma se colore

Inviato: lunedì 25 giugno 2018, 8:41
da hubert lambert
Sembra una cattiva installazione. Prova così:
- disinstalla l'estensione e riavvia completamente (incluso il QuickStart se del caso) OpenOffice;
- installa di nuovo e riavvia lo stesso.

Se non funziona, varrebbe la pena di provare con una versione più recente di OpenOffice.

Re: somma se colore

Inviato: lunedì 25 giugno 2018, 11:40
da patel
Ciao hubert lambert, Io l'ho provata su Libre 6.0 e funziona. Perché hai usato gli stili ? mi sembra più semplice applicare un colore di sfondo che usare uno stile personalizzato.
Potresti allegare il codice delle 2 funzioni ?

Re: somma se colore

Inviato: lunedì 25 giugno 2018, 12:58
da hubert lambert
Ciao Patel,

Grazie per l'interesse e per il test.
Ci sono tre ragioni (almeno) per preferire l'uso degli stili:
- non è molto facile recuperare il riferimento del colore usato (ed i nomi dei colori variano tra OpenOffice e LibreOffice, o anche tra diverse versioni);
- alcuni utenti hanno in mente il colore di sfondo, ma altri vogliono il colore del carattere, dei bordi... o un mix; inoltre, a volte è possibile confondere due colori molto vicini, problema risolto automaticamente con gli stili;
- gli stili consentono una maggior libertà (come contare i numeri in grassetto) ed è molto facile cambiare un colore senza cambiare il nome dello stile, quindi senza toccare i calcoli.

Tuttavia è sempre possibile aggiungere alcune linee di codice per contare sullo sfondo, se davvero gli utenti lo desiderano... ;)

Re: somma se colore

Inviato: lunedì 25 giugno 2018, 15:49
da unlucky83
capodimontemassimo ha scritto:Ho fatto come mi hai suggerito, riesco ad ottenere solo in parte quello che desidero, cioè funziona la macro fino a quando non chiudo il foglio ma non funziona l'aggiornamento della somma nel momento in cui coloro una nuova cella contenete un numero .
Ho cambiato l'evento a cui è associata la macro, ora viene eseguita ogni volta viene effettuato un cambio di selezione. Quindi quando selezioni una cella, es B5, e cambi il colore di sfondo, la somma verrà modificata quando selezioni un'altra cella nel foglio.
Inoltre nel momento in cui vado a riaprire il foglio non funziona nemmeno la macro se eseguita manualmente.
Non capisco perchè ti da questo problema, aprendo e chiudendo più volte il documento, apportandoci i cambi di sfondo, la macro viene sempre eseguita. Posso dirti che funziona esclusivamente con la tonalità di arancione3.
Per rendere più flessibile la mia macro l'ho modificata così:

Codice: Seleziona tutto

Sub SommaAranci
oRange=ThisComponent.Sheets.getbyname("1").getcellrangebyname("B4:B17")
oConfronto=ThisComponent.Sheets.getbyname("1").getcellrangebyname("A20")
somma=0
For i=0 To oRange.Rows.Count-1
oCosa=Orange.getCellByPosition(0,i)
   If oConfronto.CellBackColor=oCosa.CellBackColor then
      somma=somma+oCosa.Value
   End If
Next
ThisComponent.Sheets.getbyname("1").getcellrangebyname("B20").Value=somma
End Sub
In questo modo preleva il colore di confronto dalla cella A20

Re: somma se colore

Inviato: lunedì 25 giugno 2018, 22:50
da capodimontemassimo
hubert lambert ha scritto:Sembra una cattiva installazione. Prova così:
- disinstalla l'estensione e riavvia completamente (incluso il QuickStart se del caso) OpenOffice;
- installa di nuovo e riavvia lo stesso.

Se non funziona, varrebbe la pena di provare con una versione più recente di OpenOffice.
Effettivamente era installata male, ho verificato di avere la versione più recente del programma ma ancora non ho risolto. allego lo screenshot in cui si vede il prodotto.

Re: somma se colore

Inviato: lunedì 25 giugno 2018, 23:03
da capodimontemassimo
unlucky83 perché colorando la cella b15 non si aggiorna il risultato della somma ?

Re: somma se colore

Inviato: martedì 26 giugno 2018, 0:33
da unlucky83
Ho scaricato il tuo file, ho aperto il documento e la somma tiene conto di b15. Dopo aver impostato lo sfondo a b15 hai selezionato un'altra cella?

Re: somma se colore

Inviato: martedì 26 giugno 2018, 7:49
da capodimontemassimo
unlucky83 ha scritto:Ho scaricato il tuo file, ho aperto il documento e la somma tiene conto di b15. Dopo aver impostato lo sfondo a b15 hai selezionato un'altra cella?
si

Re: somma se colore

Inviato: martedì 26 giugno 2018, 8:46
da hubert lambert
capodimontemassimo ha scritto:Effettivamente era installata male, ho verificato di avere la versione più recente del programma ma ancora non ho risolto.
Come detto, con COUNTSTYLE devi utilizzare gli stili di cella (vedi F11):
massimo.png

Re: somma se colore

Inviato: martedì 26 giugno 2018, 11:53
da unlucky83
capodimontemassimo ha scritto:Inoltre nel momento in cui vado a riaprire il foglio non funziona nemmeno la macro se eseguita manualmente.
Questa cosa me la spiego solo con la sicurezza delle macro impostata per bloccare l'esecuzione della macro. La macro è piuttosto semplice e non mi viene in mente nient'altro che ti impedisca di farla funzionare.

Re: somma se colore

Inviato: mercoledì 27 giugno 2018, 6:57
da capodimontemassimo
hubert lambert non riesco a farla funzionare. ho utilizzato F11 ed aggiunto lo stile rosso .

Re: somma se colore

Inviato: mercoledì 27 giugno 2018, 7:04
da capodimontemassimo
unlucky83 ha scritto:
capodimontemassimo ha scritto:Inoltre nel momento in cui vado a riaprire il foglio non funziona nemmeno la macro se eseguita manualmente.
Questa cosa me la spiego solo con la sicurezza delle macro impostata per bloccare l'esecuzione della macro. La macro è piuttosto semplice e non mi viene in mente nient'altro che ti impedisca di farla funzionare.

Risolto! Grazie unlucky83.

Re: somma se colore

Inviato: mercoledì 27 giugno 2018, 7:32
da capodimontemassimo
UNLUCKY83 Perché riportando la stessa macro su un altro foglio con la stessa tabella , avendo già impostato la sicurezza delle macro , non si aggiorna automaticamente?