Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

kilkus

Usar 5 formatações (condicionais) diferentes no Excel

Mensagens Recomendadas

kilkus

Boas

Preciso de uma ajuda para resolver um problema.

Eu tenho valores de 1 a 4 na coluna AL e preciso de formatar as colunas A, B e C da respectiva linha consoante os valores da Coluna AL.

Assim:

Se AL2=1, a cor de fundo de A2, B2 e C2 têm que ser verde;

Se AL2=2, a cor de fundo de A2, B2 e C2 têm que ser amarelo;

Se AL2=3, a cor de fundo de A2, B2 e C2 têm que ser laranja;

Se AL2=4, a cor de fundo de A2, B2 e C2 têm que ser vermelho;

Também tenho uma condição para as mesmas células, mas baseadas no conteúdo de outra célula, ou seja,

Se I2="Fechado", a cor de fundo de A2, B2 e C2 é branco.

Concluindo, preciso de 5 condições para formatar o mesmo conjunto de células e só através do VBA é que posso resolver, mas as minhas bases são nulas.

PS: Estou a usar o Excel 2003.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sergio.costa

Boa noite.

Para poderes resolver o teu problema, de facto, terás de usar Vba.

No meu entender devias investigar sobre este tipo de linguagem e sobre algoritmia pois e a base deste tipo de programação...

Se ja conheces outras linguagem tais como C ou Pascal nao terás dificuldade em entender esta...

podes dar uma olhadela em:

www.excel-vba.com

Uma boa maneira de aprender certas coisas é também o metodo de Gravar Macro e posteriormente analisar o codigo gerado para poder aproveitar so o que interessa...

Podes dar uma olhadela em:

https://www.youtube.com/embed/2he9usbvQV0?feature=oembed

De qualquer das formas devias começar pelos comceitos de:

Forms

Modules

Events

subs

Functions

Dá uma vista de olhos neste tópico:

http://www.portugal-a-programar.pt/topic/6645-iniciar-em-vba/

Espero que ajude

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kilkus

Já está resolvido...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Celula As Range
Dim lastRow As Long
Dim x As Integer

lastRow = Cells(Cells.Rows.Count, "AL").End(xlUp).Row

For x = 2 To lastRow
 If Not LCase(Cells(x, "I")) = LCase("Fechado") Then
	 If Cells(x, "AL") = 1 Then
			 Range(Cells(x, "A"), Cells(x, "A").Offset(0, 2)).Interior.ColorIndex = 4
	 End If
	 If Cells(x, "AL") = 2 Then
			 Range(Cells(x, "A"), Cells(x, "A").Offset(0, 2)).Interior.ColorIndex = 6
	 End If
	 If Cells(x, "AL") = 3 Then
			 Range(Cells(x, "A"), Cells(x, "A").Offset(0, 2)).Interior.ColorIndex = 45
	 End If
	 If Cells(x, "AL") = 4 Then
			 Range(Cells(x, "A"), Cells(x, "A").Offset(0, 2)).Interior.ColorIndex = 3
	 End If
	 If Cells(x, "AL") = Empty Then
			 Range(Cells(x, "A"), Cells(x, "A").Offset(0, 2)).Interior.ColorIndex = 0
	 End If
 Else
		 Range(Cells(x, "A"), Cells(x, "A").Offset(0, 2)).Interior.ColorIndex = 0
 End If
Next x

End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.