Macro per contare celle in base al colore di sfondo
Macro per contare celle in base al colore di sfondo
Ciao a tutti. Sono abbastanza pratico coi fogli di calcolo, ma ho zero pratica di macro, quindi chiedo il vostro aiuto.
Avrei bisogno di una macro che mi permetta di contare le celle di una selezione che abbiano un determinato colore di sfondo. Ad esempio quante celle dallo sfondo verde possiedo su una determinata riga. Cercando in giro si trovano tante macro per Excel (e infatti anni fa quando usavo Excel ricordo di aver implementato una formula del genere), ma non riesco a trovare nulla per Calc.
Spero possiate aiutarmi!
Avrei bisogno di una macro che mi permetta di contare le celle di una selezione che abbiano un determinato colore di sfondo. Ad esempio quante celle dallo sfondo verde possiedo su una determinata riga. Cercando in giro si trovano tante macro per Excel (e infatti anni fa quando usavo Excel ricordo di aver implementato una formula del genere), ma non riesco a trovare nulla per Calc.
Spero possiate aiutarmi!
Apache OpenOffice 4.1.2 - Windows 10
Re: Macro per contare celle in base al colore di sfondo
Ciao e benvenuto sul forum.
Se intanto ti vuoi presentare puoi farlo qui: viewforum.php?f=16
Buon proseguimento.
Se intanto ti vuoi presentare puoi farlo qui: viewforum.php?f=16
Buon proseguimento.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Macro per contare celle in base al colore di sfondo
tu selezioni le celle e vuoi sapere quante di queste hanno il colore dato da cosa ?
allega un file di esempio oppure prova questa
allega un file di esempio oppure prova questa
Codice: Seleziona tutto
sub contacolori
doc=thiscomponent
Sh = Doc.Sheets(0)
colore = Sh.getCellRangeByName("K2").CellBackColor ' <<< colore da contare nella cella K2
oSelect=doc.CurrentSelection
oColumn=oselect.Columns
oRow=oSelect.Rows
count = 0
For nc= 0 To oColumn.getCount-1
For nr = 0 To oRow.getCount-1
if oselect.getCellByPosition (nc,nr).CellBackColor = colore then count = count + 1
Next nr
Next nc
print count
End Sub
-------------------
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
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
Re: Macro per contare celle in base al colore di sfondo
Grazie!charlie ha scritto:Ciao e benvenuto sul forum.
Se intanto ti vuoi presentare puoi farlo qui: viewforum.php?f=16
Buon proseguimento.
Apache OpenOffice 4.1.2 - Windows 10
Re: Macro per contare celle in base al colore di sfondo
Ecco, il problema è questo. Il colore di sfondo non è determinato da una formattazione condizionale nè da alcun valore in particolare, ma lo inserisco io manualmente. In sintesi in questo foglio ho una serie di valori numerici relativi a vari oggetti; con il colore di sfondo io evidenzio gli oggetti effettivamente utilizzati. Questo perchè è un dato che mi serve a colpo d'occhio e il foglio di lavoro è già strapieno di dati... non voglio aggiungere un'altra casella per ogni oggetto solo per indicarne l'utilizzo o meno, anche se sarebbe il sistema più semplice. So che è un modo poco ortodosso di lavorare coi fogli di calcolo, ma in questo caso mi facilita davvero tanto le cose e mi permette di avere un foglio dimezzato in larghezza. Mi serve però un conteggio automatico degli utilizzi totali che, essendo indicati da un colore di sfondo, non posso fare con le formule standard.patel ha scritto:tu selezioni le celle e vuoi sapere quante di queste hanno il colore dato da cosa ?
In passato avevo trovato una macro che mi permetteva di aggiungere una formula nel foglio. Tale formula era esattamente una formula "CONTA", ma basata sul colore di sfondo: aveva come parametri il range di ricerca e il colore da cercare e mi restituiva, nella casella in cui la immettevo, il conteggio di tutti i valori con lo sfondo verde nelle caselle/range da me selezionato. Quindi, in definitiva, mi restituiva il numero di oggetti utilizzati, che io in precedenza avevo manualmente evidenziato in verde.
Spero di essermi spiegato bene.
EDIT: ho aggiunto un file di esempio per maggior chiarezza. Nella colonna B vorrei il numero di volte che la riga in questione è colorata di verde. Ad esempio su "carota" vorrei il valore 4, dato che il suddetto oggetto è stato utilizzato (colorato di verde) 4 volte: a gennaio, marzo, aprile e agosto.
- Allegati
-
- esempio.ods
- (10.25 KiB) Scaricato 376 volte
Apache OpenOffice 4.1.2 - Windows 10
Re: Macro per contare celle in base al colore di sfondo
Allora perché hai parlato di selezione nel primo post ? mi sembra che tu abbia cambiato le carte in tavola, comunque prova questa macro.
Codice: Seleziona tutto
Sub contacolori
doc=thiscomponent
Sh = Doc.Sheets(0)
colore = 52224
for riga = 1 to 4
count = 0
For colonna = 2 To 13
if sh.getCellByPosition (colonna,riga).CellBackColor = colore then count = count + 1
Next
sh.getCellByPosition (1,riga).Value = count
Next
End sub
-------------------
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
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
Re: Macro per contare celle in base al colore di sfondo
Perdonami, mi son reso conto dopo di essermi spiegato male, ma l'intenzione era questa dall'inizio. Nel primo messaggio son stato troppo sintetico e vago.patel ha scritto:Allora perché hai parlato di selezione nel primo post ? mi sembra che tu abbia cambiato le carte in tavola, comunque prova questa macro.
Grazie mille per la macro! Noto però che non si aggiorna automaticamente nel caso io colori o decolori nuove caselle. Non è un dramma rieseguirla e già così mi hai salvato alla grande la situazione, ma c'è per caso modo di ricavarne una funzione vera e propria che possa poi piazzare a piacimento nel foglio e magari autoaggiornabile? So che in Excel è/era possibile creare vere e proprie formule via macro (che è l'unico utilizzo che ne avevo fatto in passato), ma non so se per OpenOffice esista la stessa possibilità.
Apache OpenOffice 4.1.2 - Windows 10
Re: Macro per contare celle in base al colore di sfondo
la possibilità esiste sicuramente, per ora ho seguito la via più facile, attendi altri interventi
Cambia il titolo del primo post in UDF/Macro per contare celle in base al colore di sfondo
Cambia il titolo del primo post in UDF/Macro per contare celle in base al colore di sfondo
-------------------
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
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