Notifications
Clear all

VBA - Selecionar um valor na lista e marcar outra célula

7 Posts
3 Usuários
0 Reactions
1,857 Visualizações
(@igorifv)
Posts: 11
Eminent Member
Topic starter
 

Boa tarde,

Estou tentando fazer um comando condicional no excel, porém não estou conseguindo.

O que eu quero é selecionar uma opção em uma lista e dependendo do valor, preciso marcar (com cores) outra célula.
Porém preciso dessa condição em forma de CÓDIGO VBA.

Por exemplo, na minha lista tem os nomes Pago Janeiro, Pago Fevereiro, Pago março, Não Pago Janeiro, Não Pago fevereiro, etc...

Eu quero que quando eu selecione a opção Pago Janeiro por exemplo, eu marque outra célula (que corresponde ao valor de janeiro) de verde, e caso eu marque a opção "Não pago Janeiro" ele marque a referida célula de vermelho.

Tentei isso aqui mas não deu certo...

Sub SE()
'
' SE Macro
'
If Range("O22").Cells = ("AB22") Then 'AB22 é a célula onde contém os valores das listas'
Range("C22").Select
ActiveCell.Interior.Color = 5287936

End If

End Sub

Obrigado!!
Segue em anexo o arquivo para ajudar na identificação do problema - PRECISO QUE SEJA EM VBA.

 
Postado : 03/02/2014 5:26 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

igorifv,

Boa Noite!

Sua explicação está um pouco confusa e muito genérica. Primeiro você diz:

Eu quero que quando eu selecione a opção Pago Janeiro por exemplo, eu marque outra célula (que corresponde ao valor de janeiro) de verde, e caso eu marque a opção "Não pago Janeiro" ele marque a referida célula de vermelho.

Qual célula você quer que seja marcada? Que coluna? A partir de que linha? qual é a célula que corresponde a um mês?

No seu exemplo de código você diz:

'AB22 é a célula onde contém os valores das listas'

. Entretanto, na sua planilha, não há nada na célula AB22.

Em seguida você diz em seu código:

Range("C22").Select

, mas na sua planilha não há nada na célula C22.

Pergunto tudo isso porque em programação, os míííííniiiimos detalhes são importantes. Assim, se se faz uma programação em cima dos dados que você enviou (como exemplo), fatalmente ela não servira para a sua planilha real. Desse modo, sugiro que você, se for o caso, descaracterize seus dados (se forem confidenciais), compacte seu arquivo com ZIP e anexo o mesmo aqui para que se possa desenvolver um código em cima do que é real.

 
Postado : 03/02/2014 6:22 pm
(@igorifv)
Posts: 11
Eminent Member
Topic starter
 

É verdade Wagner, não havia notado os erros anteriormente... vou tentar explicar melhor:

Na verdade o código pra o arquivo enviado seria assim:

Sub marcandovalores()
'
' marcandovalores Macro
'

If Range("H13").Cells = ("M2") Then Range("B13").Select
Range("B13").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With

If Range("Plan1!$H$13").Cells = ("M3") Then Range("C13").Select
Range("C13").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0

End With
End

End Sub

O que acontece é que quando rodo a macro, ele pinta as células, mas ele não pinta célula por célula individualmente apenas quando marco. Por exemplo, eu gostaria que o mes de Janeiro ficasse verde, se eu selecionasse na lista a opção Pago Janeiro, e seu selecionasse Não Pago Janeiro, ficasse vermelha... caso eu selecionasse Pago Fevereiro, eu gostaria que o mes Fevereiro ficasse verde e assim sucessivamente. Mas quando rodo a macro ele identifica as células iguais, mas não marca apenas quando seleciono. Entende?

Obrigado pela ajuda.

 
Postado : 05/02/2014 8:21 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

igorifv,

Boa Noite!

Veja se é assim.

 
Postado : 05/02/2014 7:42 pm
(@igorifv)
Posts: 11
Eminent Member
Topic starter
 

Wagner!!! Era exatamente isso que eu procurava... gostaria de saber como foi feito... você usou apenas a formatação condicional? Se sim, como foi feito??
Teria como fazer dessa mesma forma, sendo que em VBA????

Desde já, agradeço sua ajuda Wagner.

:D

 
Postado : 06/02/2014 5:25 am
(@igorifv)
Posts: 11
Eminent Member
Topic starter
 

Acabei de ver aqui Wagner... você utilizou o CASE Statement... fantástico! Simples e fácil de resolver...Muito obrigado!!!

 
Postado : 06/02/2014 5:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

 
Postado : 06/02/2014 9:47 am