Formatação Condicio...
 
Notifications
Clear all

Formatação Condicional em Formas

8 Posts
3 Usuários
0 Reactions
1,138 Visualizações
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Boa tarde pessoal.

Tenho um arquivo com varias formas que representam mesas de um evento.

E tenho que controlar se estão reservadas (falta pagamento), livre ou vendida (pagamento efetuado)

Conforme arquivo em anexo, vou desenhar a planta do ambiente no Excel, e criar uma forma para cada mesa.

Sub Teste_01()
For i = 1 To 20
Mesa = Sheets("Plan2").Range("S" & i + 1).Value
ActiveSheet.Shapes(Mesa).Fill.ForeColor.RGB = RGB(0, 180, 80)
Next i
Range("Q2").Value = "'01"
ActiveSheet.Shapes("01").Fill.ForeColor.RGB = RGB(85, 140, 215)
End Sub

Com a macro acima, eu identifico a forma que estou clicando, mas gostaria que em vez de deixar todas as outras na cor verde, deixaria laranja para Reservada e Vermelho para Vendida.
Ou seja, uma formatação condicional de acordo com as colunas S e T

Alguém manja dos paranaues?

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 05/03/2018 1:27 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Carlos, seria mais ou menos isso?

Sub Teste_01()
For i = 1 To 20
Mesa = Sheets("Plan2").Range("S" & i + 1).Value

If Sheets("Plan2").Range("T" & i + 1).Value = "Reservado" Then
ActiveSheet.Shapes(Mesa).Fill.ForeColor.RGB = RGB(228, 120, 51)

ElseIf Sheets("Plan2").Range("T" & i + 1).Value = "Vendido" Then
ActiveSheet.Shapes(Mesa).Fill.ForeColor.RGB = RGB(255, 0, 0)

Else
ActiveSheet.Shapes(Mesa).Fill.ForeColor.RGB = RGB(0, 107, 84)
End If
Next i
End Sub

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 05/03/2018 2:13 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Boa tarde xlarruda
Obrigado pelo retorno.

Sim, é 90% do que desejo.

Sub Teste_01A()
For i = 1 To 20
Mesa = Sheets("Plan2").Range("S" & i + 1).Value
If Sheets("Plan2").Range("T" & i + 1).Value = "Reservado" Then
ActiveSheet.Shapes(Mesa).Fill.ForeColor.RGB = RGB(228, 120, 51)
ElseIf Sheets("Plan2").Range("T" & i + 1).Value = "Vendido" Then
ActiveSheet.Shapes(Mesa).Fill.ForeColor.RGB = RGB(255, 0, 0)
Else
ActiveSheet.Shapes(Mesa).Fill.ForeColor.RGB = RGB(0, 107, 84)
End If
Next i
Range("Q2").Value = "'01"
ActiveSheet.Shapes(Plan2.[Q2]).Fill.ForeColor.RGB = RGB(85, 140, 215)
End Sub

Será que essa parte tem como automatizar numa unica macro?
Range("Q2").Value = "'01"
ActiveSheet.Shapes(Plan2.[Q2]).Fill.ForeColor.RGB = RGB(85, 140, 215)

Ao clicar em alguma das formas, o excel identificar o nome e colocar na célula Q2, ao invés de inserir como no exemplo.

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 05/03/2018 2:37 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Carlos, selecione alguma forma e execute isso:

Selection.ShapeRange.Fill.ForeColor.RGB = RGB(85, 140, 215)

Diga se esse é o resultado que procura...

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 05/03/2018 2:49 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Depurou aqui.
O outro que você tinha postado tbm rs!

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 05/03/2018 2:56 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Consegui com esse código

    Range("Q2").Select
    ActiveCell.FormulaR1C1 = ActiveSheet.Shapes(Application.Caller).Name

No fórum mesmo.
http://www.planilhando.com.br/forum/viewtopic.php?t=18264&p=92423

Segue arquivo para eventuais consultas

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 05/03/2018 3:07 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Pois é agora percebi.

Ela não seleciona com o botão esquerdo do mouse, apenas com o direito. e o "selection" do código dá erro.

Mas que bom que conseguiu..

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 05/03/2018 3:11 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

carlosrgs,

Bom dia!

Eu faria um pouco diferente... não sei se lhe serve mas, fiz da seguinte forma. Defini as formas com números dentro delas de modo a identificar quando elas estão VENDIDAS, LIVRES ou RESERVADAS e coloquei uma legenda para identificar a cor de acordo com essas condições.

Daí, é só ler todas as formas e atribuir a cor desejada. Veja se pode ser assim.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 06/03/2018 4:53 am