Jump to content
kilkus

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

Recommended Posts

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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.