Notifications
Clear all

Gráfico com Variavel

21 Posts
3 Usuários
0 Reactions
2,158 Visualizações
(@guilhermm)
Posts: 11
Active Member
Topic starter
 

Pessoal me ajude por favor... preciso construir gráficos baseados em uma planilha que é aumenta tanto de linhas como de colunas, assim precisei montar uma variavel para calcular linhas e colunas, só que na hora de montar o gráfico via VBA, não consigo escrever o range com a variavel. me ajudem por favor !

segue o código

IDENTIFICANDO TABELAS
lin_col = 1
col_col = 1
lin_set = 1
col_set = col_col + 1

While Cells(1, col_col) <> ""
col_col = col_col + 1
Wend
While Cells(lin_col, 1) <> ""
lin_col = lin_col + 1
Wend
'gráfico de média.col
Sheets("Relatório").Select
Cells(1, 1000).Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "Média.Col"
'assim que tenho tentado montar
ActiveChart.SeriesCollection(1).Values = "=Relatório!" & Range(Cells(2, col_col - 1), Cells(lin_col - 1, col_col - 1))
'seria esse o range atual, mas para frente ele mudaria 'K2:K4"
'assim ele da certo, mas preciso que seja sem o range fechado
ActiveChart.SeriesCollection(1).XValues = "=Relatório!B2:B4"
ActiveChart.Location where:=xlLocationAsNewSheet, Name:="Nota Méd.Col"
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Text = "Nota Média Por Colaborador"
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MaximumScale = 10
ActiveChart.SeriesCollection(1).Select
ActiveChart.SetElement (msoElementDataLabelOutSideEnd)
ActiveChart.ClearToMatchStyle
ActiveChart.ChartStyle = 26
ActiveChart.ClearToMatchStyle

 
Postado : 07/04/2014 10:44 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Bem, vc pode usar o worksheet.function para transformar as tuas variáveis em um endereço de células usando a função ENDEREÇO(), depois, junta tudo em uma variável só, algo +/- assim:

Dim celula1 as string
Dim celula2 as string

celula1 = worksheet.function(address(lin_col, col_col))
celula2 = worksheet.function(address(lin_col, col_col))

ActiveChart.SeriesCollection(1).Values = "=Relatório!"&celula1&":"celula2"

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 07/04/2014 12:53 pm
(@guilhermm)
Posts: 11
Active Member
Topic starter
 

OK, vamos tentar...

Ele deu Erro - Sub ou Function não definida
Marcando o address

 
Postado : 07/04/2014 1:03 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

bem, não era pra vc copiar e colar o que eu postei, isso foi um exemplo de como usar a função...

Já que vc não enviou seu arquivo modelo, cabe a você escrever o que precisa...

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 07/04/2014 1:06 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Guilherme, poste seu arquivo modelo.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/04/2014 1:14 pm
(@guilhermm)
Posts: 11
Active Member
Topic starter
 

Postado, vou tentar explicar.
form. cadastra a avaliação de desempenho dos colaboradores em aba DADOS
ao abrir o form4 ele separa os dados da aba DADO para a aba Relatório em 2 planilhas, calculando as notas de cada um, valores médios, etc...
mais abaixo no script, ele pega essas tabelas e transforma em graficos ( eis a parte que preciso trabalhar) uma vez que neste processo de transformação dos dados da aba DADOS para a aba Relatório, o numero de linhas e colunas muda de acordo com o cadastro de novas avaliações.

 
Postado : 07/04/2014 1:21 pm
(@guilhermm)
Posts: 11
Active Member
Topic starter
 

Consegui Galera !!!!

ficou assim:
ActiveChart.SeriesCollection(1).Values = "=Relatório!" & Worksheets("Relatório").Cells(2, col_col - 1).Address & ":" & Worksheets("Relatório").Cells(lin_col - 1, col_col - 1).Address

Muito obrigado pela ajuda , desculpa por qualquer coisa, é minha primeira experiencia com forum, e vcs foram 10, o unico que respondeu de pronto ! Muito obrigado mesmo !

 
Postado : 07/04/2014 1:58 pm
Página 2 / 2