Usuário com melhor resposta
Manipulando Gráficos

Pergunta
-
Respostas
-
Jardyson,
Os códigos abaixo foram criados para a versão 2003.
Code SnippetSub Adicionar_Série()
Set Obj_Gráfico = Worksheets(1).ChartObjects("Gráfico 1")
Obj_Gráfico.Activate
ActiveChart.SeriesCollection.Add Source:=Sheets("Plan1").Range("C2:C5")
End Sube
Code SnippetSub Adicionar_Dados()
Set Obj_Gráfico = Worksheets(1).ChartObjects("Gráfico 1")
Obj_Gráfico.Activate
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES(,Plan1!R2C1:R6C1,Plan1!R2C2:R6C2,1)"
End Sub[ ]s
Todas as Respostas
-
Jardyson,
Qual a versão do excel que vc está utilizando?
Os objetos variam um pouco conforme a versão.
Na versão 2007, por exemplo, vc atribui os valores de uma série usando um comando como abaixo. Neste exemplo é atribuído o intervalo C5:T5 da planilha "Sheet1" à primeira série do Gráfico "Graph1".
Code SnippetCharts("Chart1").SeriesCollection(1).Values = Worksheets("Sheet1").Range("C5:T5")
Neste outro exemplo, é adicionado ao mesmo gráfico uma nova série, com valores no intervalo B1:B10 da mesma "Sheet1"
Code SnippetCharts("Chart1").SeriesCollection.Add Source:=ActiveWorkbook.Worksheets("Sheet1"). _Range("B1:B10")
E este último modifica o nome de Chart1 para Gráfico_Teste
Code SnippetCharts("Chart1").Name = "Gráfico_Teste"
Espero que atenda à tua dúvida.
[ ]s
-
Prezado Adilson,
obrigado pela atenção!
Atualmente utilizo o Office 2003. Estas sintaxes funcionam também nesta versão? Eu esqueci de comentar uma coisa, estou tratando os gráficos como OBJETOS nas planilhas, e não como uma planilha, entende?
Fico no aguardo!
Abraços!
-
No caso de serem objetos incorporados em planilhas, a sintaxe ficaria:
Code SnippetWorksheets("Sheet1").ChartObjects("Chart1").Chart.SeriesCollection(1).Values = Worksheets("Sheet1").Range("C5:T5")Não sei te dizer de imeditato se funciona para a versão 2003, já que migramos aqui no serviço para 2007 e estou sem uma máquina na versão anterior para testar.
Veja se funciona e se ocorrer algum problema, poste aqui que eu vejo à noite em casa na versão 2003, ok?
Segue abaixo link da microsoft com a estrutura de objetos gráficos e exemplos de VBA:
http://msdn2.microsoft.com/en-us/library/aa213725(office.11).aspx
Outro link com várias aplicações de VBA em gráficos:
http://peltiertech.com/Excel/ChartsHowTo/QuickChartVBA.html
[ ]s
-
-
-
-
Vamos lá:
Existem duas opções para o que vc quer realizar
1. Renomear um gráfico de uma planilha para um nome que facilite o seu reconhecimento
2. Atribuir um gráfico a uma variável objeto durante a execução de um procedimento.
Coloquei abaixo os códigos para ambos os casos, atribuindo o Intervalo C5:T5 como fonte dos dados para Série 1 do gráfico.
No caso da opção 1, teríamos
Code SnippetWorksheets("Sheet1").ChartObjects("Chart1").Name = "NomeDesejado"
Worksheets("Sheet1").ChartObjects("NomeDesejado").SeriesCollection(1).Values = _
Worksheets("Sheet1").Range("C5:T5")
No caso da opção 2, teríamos
Code SnippetSet NomeDesejado = Worksheets("Sheet1").ChartObjects("Chart1")
NomeDesejado.SeriesCollection(1).Values =
Worksheets("Sheet1").Range("C5:T5")
[ ]s
-
Saudações,
segui os passos acima conforme sugerido:
1- Dim Grafico As Object
2- Set Grafico = Worksheets("Plan1").ChartObjects("Gráfico 1")
3- Grafico.SeriesCollection(1).Values = Worksheets("Plan1").Range("C5:T5")Porém na 3a linha, me aparece o seguinte erro: Erro tem tempo de execução 438. O objeto não aceita esta propriedade ou método.
Caso você possua um exemplo e possa mandar para meu e-mail: jardyson@hotmail.com
Se puder, envia pelo e-mail e vamos continuar o debate por aqui.
Abraços.
-
-
Jardyson,
Os códigos abaixo foram criados para a versão 2003.
Code SnippetSub Adicionar_Série()
Set Obj_Gráfico = Worksheets(1).ChartObjects("Gráfico 1")
Obj_Gráfico.Activate
ActiveChart.SeriesCollection.Add Source:=Sheets("Plan1").Range("C2:C5")
End Sube
Code SnippetSub Adicionar_Dados()
Set Obj_Gráfico = Worksheets(1).ChartObjects("Gráfico 1")
Obj_Gráfico.Activate
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES(,Plan1!R2C1:R6C1,Plan1!R2C2:R6C2,1)"
End Sub[ ]s
-