|
30/05/2018 18:59 | |
Chiedo aiuto agli esperti.
Ho un file con centinaia di righe con numeri su sei colonne.
Queste celle, a cui ho applicato la formattazione condizionale si colorano se rispondono a certi requisiti.
Come posso contare, riga per riga le celle colorate?
Ho provato diverse soluzioni trovate in rete ma senza soluzione.
Grazie |
|
| | Post: 1.621 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
30/05/2018 19:12 | |
ciao
senza file o almeno
la formula di formattazione è difficile
darti una risposta.
[Modificato da federico460 30/05/2018 19:12] |
|
30/05/2018 19:29 | |
Allego un file semplice di esempio.
Nelle colonna I vorrei che ci fosse il totale delle celle colorate, riga per riga.
Grazie |
| | Post: 3.509 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
31/05/2018 01:14 | |
Seguendo il Tuo allegato, la cosa migliore e rifare "quanto fatto in FC"
Ex nella riga2 =CONTA.SE(B2:G2;140),,, se poi ci sino altre condizioni aggiungerle di seguito
EX nella riga2 =CONTA.SE(B2:G2;140)+CONTA.SE(B2:G2;130)+CONTA.SE(B2:G2;110) ecc ecc e trascinare giù
Dato che usi Excel2007 presumo che il codice sotto non funzioni, comunque se Vuoi provarlo sul tuo allegato
Casomai sull'originale dovrai modificare i riferimenti della riga16
vb Function ContaColorFC(ByRef rng As Range)
Dim cella As Range
Dim sFC As String
ContaColorFC = 0
For Each cella In rng
If cella.DisplayFormat.Interior.ColorIndex <> xlColorIndexNone Then
ContaColorFC = ContaColorFC + 1
End If
Next cella
End Function
Sub conta() ' questo il codice da avviare
Dim X As Long, Ur As Long
Ur = Range("A" & Rows.Count).End(xlUp).Row 'conta le righe
For X = 2 To Ur 'dalla riga2 sino alla fine
'NB Controlla le colonne da 1=A sino 7=G e scrive in colonna 8=H
Cells(X, 8) = ContaColorFC(Range(Cells(X, 1), Cells(X, 7)))'riga16
Next X
End Sub [Modificato da raffaele1953 31/05/2018 01:19] Excel 2013 |
| | Post: 630 | Registrato il: 02/08/2015
| Utente Senior | Excel 2013 | | OFFLINE |
|
31/05/2018 10:12 | |
Ciao a tutti,
@miky
essendo le celle colorate tramite formattazione condizionale, ti basta usare una formula con lo stesso criterio di quest'ultima....
In cella I2 (da copiare poi in basso):
=CONTA.SE($B2:$G2;$L$3)
Ciao
Tore
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare." |
|
31/05/2018 20:54 | |
Grazie, ho provato il codice da te proposto ma non funziona.
Per la versione di Excel non avevo aggiornato il profilo, al momento utilizzo la versione 2016.
Probabilmente la soluzione migliore è il CONTA.SE.
Ciao
|
| | Post: 3.512 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
31/05/2018 21:22 | |
2016 = deve funzionare
Edit hai messo il codice in un MODULO? [Modificato da raffaele1953 01/06/2018 13:15] Excel 2013 |
| | Post: 1.868 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
01/06/2018 13:17 | |
ciao
la formula di Tore (saluti) "deve funzionare", a meno che il tuo schema non abbia struttura diversa da quella sottoposta.
[Modificato da dodo47 01/06/2018 13:18] Domenico
Win 10 - Excel 2016 |
| | Post: 1.622 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
01/06/2018 18:12 | |
ciao
visto il file
conta.se o matr.somma.prodotto
=MATR.SOMMA.PRODOTTO(--($B2:$G2=$L$3))
=CONTA.SE($B2:$G2;$L$3)
raffaele
la sub funziona
ma la funzione pur dando il risultato
mi da valore
ho scritto
=ContaColorFC(B2:G2)
c'è qualcosa di sbagliato? [Modificato da federico460 01/06/2018 18:19] |
| | Post: 3.514 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
02/06/2018 00:13 | |
@federico460
Io non sono capace di spiegare, leggi questo vecchio post
http://www.excelvba.it/Forum/story/Excel_e_gli_applicativi_Office/Contare_celle_con_formattazione_condizionale.html Excel 2013 |
| | Post: 1.623 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
02/06/2018 01:19 | |
ciao
capito
grazie |
| | Post: 580 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
02/06/2018 18:37 | |
Salve a tutti
Visto che mi avete tirato in ballo (c'ero nella discussione citata), vorrei proporre una mia soluzione con VBA
Ecco il codice:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'by Marius44
Dim FC As FormatCondition, F1, c As Range, a As Long
If Not Intersect(Target, Range("L3")) Is Nothing Then
For Each c In Range("B2:G9")
c.Activate
For Each FC In ActiveCell.FormatConditions
If FC.Type = xlCellValue Then
F1 = Evaluate(FC.Formula1)
If ActiveCell = F1 Then a = a + 1
End If
Next FC
Next c
MsgBox "Celle formattate = " & a
End If
End Sub
Allego il file in cui basta cambiare il dato in L3
Ciao,
Mario |
| | Post: 3.515 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
03/06/2018 12:32 | |
Un saluto a Marius44
Hai ragione, avrei dovuto citarne la fonte e per pigrizia ho usato la stessa Function
Scossa.vr (ciao) ha specificato bene la problematica + EXCEL 2010.
Qualsiasi Sub può farlo (tranne la stessa Function), comunque il conteggio era per ogni riga... vb Sub conta()
Dim X As Long, Ur As Long, cella As Range, Rng As Range, ContaColorFC As Long
Ur = Range("A" & Rows.Count).End(xlUp).Row
For X = 2 To Ur
ContaColorFC = 0
Set Rng = Range(Cells(X, 1), Cells(X, 7))
For Each cella In Rng
If cella.DisplayFormat.Interior.ColorIndex <> xlColorIndexNone Then
ContaColorFC = ContaColorFC + 1
End If
Next cella
Cells(X, 8) = ContaColorFC
Next X
Set Rng = Nothing
End Sub
[Modificato da raffaele1953 03/06/2018 12:36] Excel 2013 |
| | Post: 581 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
03/06/2018 15:09 | |
Ciao Raffaele
Hai ragione. Ho letto male.
Comunque, facile aggiustarla (volendo, ma io non voglio )
Ciao,
Mario |
|
|