[Problema] Ajuda com excel (Urgente)

Started by pepito, April 01, 2008, 06:08:07 PM

Previous topic - Next topic

pepito

será que alguem me pode ajudar?

é o seguinte eu queria saber se é possivel contar quantas celulas é que tem fundo azul, ou seja, eu ja tentei usar a funçao contar mas so aceita valores e eu queria contar as celulas cuja cor de fundo fosse azul.

haverá algum génio em excel por ai?

obrigado.

Tag Adicionada e Tìtulo modificado by Lok.

jpaulino

>> haverá algum génio em excel por ai?
Génio não conheco nenhum

Pode ser em VBA (pode não, tem de ser!) ?

E qual é a versão que estás a usar ?
http://vbtuga.blogspot.com/
(VB.NET, ASP.NET, VB6, VBA, SQL Server)

pepito

eu uso o office 2003 e ja agora gostaria de saber fazer das 2 maneiras. por macro ou n

obrigado

jpaulino

Bom como disse na mensagem anterior só em VBA!

Fazes ALT+F11 no Excel e aparece-te um editor. Na janela Projects clicas com o botão direito e inseres um módulo. Copias para lá esta função:

Public Function CountColors(rg As Range, ColorIndex As Integer) As Integer
Dim rng As Range
Dim x As Integer

    For Each rng In rg
      If rng.Interior.ColorIndex = ColorIndex Then
           x = x + 1
      End If
    Next
    CountColors = x
   
End Function

Depois no excel utilizas em qualquer célula do seguinte modo:
=CountColors(Area, CódigoDaCor)
http://vbtuga.blogspot.com/
(VB.NET, ASP.NET, VB6, VBA, SQL Server)

pepito

jpaulino obrigado pela dica mas nao percebi bem a ultima parte, ou seja, nao percebi bem esta parte

Depois no excel utilizas em qualquer célula do seguinte modo:
=CountColors(Area, CódigoDaCor)

fiz tudo direito. inseri um modulo e colei este codigo mas agora como faço para por =CountColors(Area, CódigoDaCor) no excel e pergunto porque eu queria contar o nÃ,º de cores num determinado intervalo onde  e como posso fazer isso?

agradecia a ajuda mais uma vez obrigado.

jpaulino

Por exemplo na célula A1 colocas essa formula
=CountColors(B1:B20, 2)

O 2 é o código para uma amarelo.

Mas o que é para ti um intevalo de cores ?
http://vbtuga.blogspot.com/
(VB.NET, ASP.NET, VB6, VBA, SQL Server)

pepito

quando eu falo num intervalo de cores tou a dizer tipo: nas celulas a1:b10 por exemplo tenho 2 celulas com fundo azul e queria ter um outro campo fora desse que me dissesse o nÃ,º de celulas com fundo azul ou seja neste caso 2 e caso eu altere esse valor tb tinha obrigatoriamente que alterar

eu tento por aquele codigo =countcolors.... e dá sempre erro que a formula nao existe   :|

jpaulino

Desculpa só responder mas tenho estado ocupado.

Vê este exemplo http://vbtuga.blogspot.com/2008/04/excel-c...-das-clula.html
http://vbtuga.blogspot.com/
(VB.NET, ASP.NET, VB6, VBA, SQL Server)

pepito

ola mais uma vez

desculpa dizer mas mesmo assim nao consegui da maneira como disseste contudo obrigado, no entanto consegui fazer mas apenas conta uma coluna, ver codigo em baixo

Sub cores()
Dim c As Range, rw As Long

For rw = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(rw, 1).Interior.ColorIndex = 35 Then c = c + 1
    Next rw
Range("c10") =c
end sub
 

O codigo faz o seguinte:

pesquisa na coluna A, vai ao ultimo valor e sobe, quando encontrar uma cor "35" conta e sobe+ 1 celula e assim sucessivamente.

a celula c10 = resultado final


Nota: funciona 100% no office 2003 testado por mim

jpaulino

Queres um exemplo ... http://www.megaupload.com/pt/?d=V9FNIII2


PS: Mas qual é a versão do Excel que estás a usar ?
http://vbtuga.blogspot.com/
(VB.NET, ASP.NET, VB6, VBA, SQL Server)

pepito


jpaulino

http://vbtuga.blogspot.com/
(VB.NET, ASP.NET, VB6, VBA, SQL Server)

pepito

ja sei porque nao funcionava

=CountColors($B$5:$G$14;35) no site nao esta assim está =CountColors(C3:C10;4)

nao dava porque faltava $

obrigada

jpaulino

Ainda não é isso, deve-te faltar qualquer coisa. Os dolar ( $ ) servem para bloquear as células quando copias, ou sejam, se tiveres a formula =A1 na célula B1 e copiares para baixo ele incrementa para A2. Se utilizares os dolares ele fixa a célula.

De qualquer maneira está a funcionar e isso é que interessa.
http://vbtuga.blogspot.com/
(VB.NET, ASP.NET, VB6, VBA, SQL Server)