Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Somma solo i valori delle celle non colorate

Ultimo Aggiornamento: 09/05/2019 12:55
Post: 5
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
08/05/2019 11:24

Buongiorno a tutti,
il seguente pezzo di codice mi consente di inserire nella prima cella vuota (e formattata a mio piacimento) della colonna G la somma di tutti i numeri soprastanti:

Sheets("Sheet2").Select
Set Zone = Range([G2], [G2].End(xlDown))
[G2].End(xlDown).Select
ActiveCell.Offset(1, 0).NumberFormat = "#,##0.00"
ActiveCell.Offset(1, 0).Font.Bold = True
ActiveCell.Offset(1, 0).Interior.Color = vbGreen
ActiveCell.Offset(1, 0) = WorksheetFunction.Sum(Zone)

Con un'altra Sub che gira prima di questa coloro di grigio (Interior.ColorIndex = 15) nella stessa colonna tutte le celle aventi determinati requisiti.
Adesso quindi avrei sempre bisogno di fare girare il pezzo di macro postato però escludendo nel calcolo tutte le celle di colonna G colorate di grigio oppure sommando tutte le celle non colorate (perchè non ho altri colori).
Come dovrei cambiare il codice?
Anticipatamente grazie a tutti per l'eventuale aiuto!
Post: 2.136
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
08/05/2019 16:06

ciao

esempio di una UDF che calcola le celle non colorate
PS il colore non viene dato dalla formattazione condizionale ma da ribbon


Function SommaNoColore(ByVal Rng As Range) As Double
Dim colCella As Variant
For Each colCella In Rng
If colCella.Interior.ColorIndex = xlNone Then
SommaNoColore = SommaNoColore + colCella.Value
End If
Next
End Function






Ciao da locate
excel 2007 / 13
Post: 5
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
08/05/2019 17:36

Grazie mille, come potrei innestare il tutto nel mio pezzo di codice?
Grazie mille saluti
Post: 2.137
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
08/05/2019 23:58

ciao

cosi a spanne ti posso dire solamente di inserire la UDF dopo la tua sub() e applicare questa al posto della tua SUM()

da cosi
ActiveCell.Offset(1, 0) = WorksheetFunction.Sum(Zone)


a cosi
ActiveCell.Offset(1, 0) = SommaNoColore(Range(tuo range))

esempio di utilizzo con dati da sommare da Range("A1:A10")

Option Explicit

Sub xxxx()
Cells(1, "C") = SommaNoColore(Range("A1:A10"))
End Sub

Function SommaNoColore(ByVal Rng As Range) As Double
Dim colCella As Variant
For Each colCella In Rng
If colCella.Interior.ColorIndex = xlNone Then
SommaNoColore = SommaNoColore + colCella.Value
End If
Next
End Function



Ciao da locate
excel 2007 / 13
Post: 6
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
09/05/2019 12:55

Ciao e grazie tante Locate, non riesco però a farla girare correttamente per cui adesso tento altre soluzioni. Grazie ancora ciao
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 08:35. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com