Olá colega jose7br Bom dia novamente!
Bem nesse caso usei VBA..
Baseando no tamanho do seu gráfico, fiz com que, sempre que altere o percentual nas células de "Q9 a Q12", altere também o tamanho das faixas.
O tamanho e posicionamento pode ser visto através do código:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Cells.Count > 1 Then
Exit Sub
End If
If Target.Column = 17 And Target.Row >= 9 And Target.Row <= 12 Then
faixa_cinza:
ActiveSheet.Shapes.Range(Array("Faixa_cinza")).Select
With ActiveSheet.Shapes.Range(Array("Faixa_cinza"))
.Left = 105 'Posião
.Top = 339 'Posição
.Height = [Plan1].Range("Q9").Value * 172 'Tamanho (onde 172 é o tamanho correspondente à 100%)
End With
' a mesma lógica é seguida para as outras faixas
faixa_verde:
ActiveSheet.Shapes.Range(Array("Faixa_verde")).Select
With ActiveSheet.Shapes.Range(Array("Faixa_verde"))
.Left = 105
.Width = 441
.Top = 339
.Height = [Plan1].Range("Q10").Value * 172
End With
faixa_amarela:
ActiveSheet.Shapes.Range(Array("Faixa_amarela")).Select
With ActiveSheet.Shapes.Range(Array("Faixa_amarela"))
.Left = 105
.Width = 441
.Top = 339
.Height = [Plan1].Range("Q11").Value * 172
End With
faixa_azul:
ActiveSheet.Shapes.Range(Array("Faixa_azul")).Select
With ActiveSheet.Shapes.Range(Array("Faixa_azul"))
.Left = 105
.Width = 441
.Top = 339
.Height = [Plan1].Range("Q12").Value * 172
End With
End If
Target.Offset(1, 0).Select
Application.ScreenUpdating = True
End Sub
Um detalhe é que, se mudar o tamanho do gráfico terá de alterar os valores no código..
Abrç!
___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].
Att.
André Arruda
Postado : 08/01/2018 6:05 am