Forum Pplware

Versão Completa: Macro excel - Somar celulas por cor
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Alguém me pode ajudar a editar esta macro para fazer o que eu quero?
A macro a baixo basicamente soma células no Excel que tenham a mesma cor, contudo eu precisava que ela soma-se as células que tenham caracteres com a mesma cor!

Resumindo, quero somar caracteres (Algarismos) com a mesma cor e não células!

É possível ? Big Grin

Obrigado

Function SumByColor(CellColor As Range, SumRange As Range)
Dim myCell As Range
Dim iCol As Integer
Dim myTotal
iCol = CellColor.Interior.ColorIndex 'obtém a cor de destino
For Each myCell In SumRange 'verifica cada célula no intervalo designado
'se a cor da célula corresponder á cor alvo
If myCell.Interior.ColorIndex = iCol Then
'adiciona o valor da célula ao total
myTotal = WorksheetFunction.sum(myCell) + myTotal
End If
Next myCell
SumByColor = myTotal
End Function
Olá Smile

Tens de alterar a propriedade, onde usas 
CellColor.Interior.ColorIndex tens de passar a usar CellColor.Font.Color , assim como no IF, tens If myCell.Interior.ColorIndex = iCol Then trocas por If myCell.Font.Color = iCol Then sendo o resultado final,


Código:
Function SumByColor(CellColor As Range, SumRange As Range)

Dim myCell As Range
Dim iCol As Integer
Dim myTotal

iCol = CellColor.Font.Color 'obtém a cor de destino

For Each myCell In SumRange 'verifica cada célula no intervalo designado
'se a cor da célula corresponder á cor alvo
If myCell.Font.Color = iCol Then
'adiciona o valor da célula ao total

myTotal = WorksheetFunction.Sum(myCell) + myTotal
End If

Next myCell
SumByColor = myTotal

End Function


Espero ter ajudado. Smile
Sem duvida que ajudas-te!
Mas ainda continuo com um problema.

Estive a testar a macro e sem duvida que funcionou, porém está a acontecer algo deste género:

Para o mesmo conjunto de números com cores diferentes, quando executo a função pela primeira vez o resultado da correcto, todavia, quando vou executar mais uma vez para uma outra cor aparece #VALOR!.

Alguma ideia do que pode ser ?
Acontece isso contigo ?
Podes colocar aqui um ficheiro com um exemplo desse problema?
Boas,
o código da cor que queres contar é um numero maior que o que o tipo de dados Integer consegue suportar.

tens de alterar para:


Código:
Dim iCol As Long


Cumprimentos.
Fantástico !!!

MUITO OBRIGADO!!!

Tenho de começar a pensar aprender um bocado disto !

Obrigado mais uma vez.
Também não tinha reparado nisso. EEK!
Às vezes com as adaptações acontece isto.

Mas ainda bem que já tens o problema resolvido.
URL's de Referência