Notifications
Clear all

Colunas a serem selecionadas para geração de gráficos

10 Posts
2 Usuários
0 Reactions
832 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigos cheguei no momento mais esperado, neste primeiro desenvolvimento, com VBA e Excel, nestes últimos dias adquiri muita experiencia e conhecimento juntamente com todos do fórum.

Voltando ao assunto Gráficos, até que enfim cheguei :D

Gostaria de saber como faço para selecionar duas Coluna sendo elas:

Coluna B: partindo da linha 3; e chegar ate a primeira célula estiver vazia;
e
Coluna D: partindo da linha 3; e chegar ate a primeira célula estiver vazia;

Percebam que nestas seleções, não quero incluir a Coluna C, sendo assim selecionado de modo tradicional com mouse e Shift para este tipo de seleção.

Para melhor ilustrar, vejam imagem de exemplo.

 
Postado : 17/09/2016 7:02 am
(@wzxnet7)
Posts: 0
New Member
 

Bom dia.
Veja se o anexo ajuda.

 
Postado : 17/09/2016 8:26 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Caro wzxnet7, é isto mesmo, mas tem um porém, gostaria que meu código fizesse a geração do gráfico, pois acontece que posso ter n! funcionário, ai se tiro ou coloco outro funcionário, tenho que gerar um gráfico individual para cada funcionario.

Neste link tenho a planilha que estou desenvolvendo
http://www.planilhando.com.br/forum/download/file.php?id=24230

Muito obrigado, vou clicar no joia agora.

Sé você conseguir dinamicamente, ficarei mais grato ainda

E qualquer coisa para facilitar o desenvolvimento troco as colunas de % e hora, ai fica mais facil :D

 
Postado : 17/09/2016 10:49 am
(@wzxnet7)
Posts: 0
New Member
 

Vc já considerou a hipótese de, em vez de criar uma aba pra cada funcionário, utilizar uma única tabela para fazer todos os lançamentos de todos os funcionários (utilizando uma coluna extra para indicar o nome do funcionário) e depois fazer o relatório utilizando gráfico dinâmico e tabela dinâmica?

 
Postado : 17/09/2016 10:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pensei sim, amigo wzxnet7, mas ai conversando com eles, me pediram para manter deste jeito, pois acham que fica mais organizado e separado, com certeza esta possibilidade que você falou, foi a inicial que tive kkkkkkk fazer o que querem complicar, vamos fundo desenvolver.

Para não complicar vou mudar as colunas ai usa um Range() e gera os gráficos kkkkkkk, só se houver a possibilidade ?

Obrigado novamente

 
Postado : 17/09/2016 11:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pensando bem, em futuros problemas como este em que não se pode mudar a ordem das colunas, caro wzxnet7, será que existe a possibilidade de fazer o Range pular uma coluna ?

Gostaria de saber?

 
Postado : 17/09/2016 1:04 pm
(@wzxnet7)
Posts: 0
New Member
 

Boa noite.
Sim.
Veja no código a seguir como criar um gráfico à partir de um range não contíguo...

Observe que os dados são originados de D3:D8 e F3:F8

Plan1.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("planilha_X!$D$3:$D$8,planilha_X!$F$3:$F$8")

 
Postado : 17/09/2016 5:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigo wzxnet7 implementei o que você disse em minha solução, com uma alteração, e esta acontecendo um problema, na seleção Range pois esta selecionando colunas a mais, a qual não quero.

Arquivo Excel anexo
Imagem com o exemplo do que o Range esta selecionando.

Tenho as veriáveis Integer lin e col que tenho controle sobre elas, então através dela posso descobri a Coluna e Linha e poder inseri-las no Range.
Tem como ?

Dim sel1 As String
Dim sel2 As String            
sel1 = wrLinha.Cells(3, col) & ":" & wrLinha.Cells(lin - 1, col)
sel2 = wrLinha.Cells(3, col + 2) & ":" & wrLinha.Cells(lin - 1, col + 2)

Eu implementei o código abaixo, o gráfico é criado perfeitamente MAS esta pegando coluna a mais.
E preciso que as vaiáveis sel1 e sel2 interajam no Range para que assim possa criar os gráfico para cada funcionário.

            
Plan5.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Plan5.Range("B4:B27", "D4:D27")
'ActiveChart.SetSourceData Source:=Plan5.Range(sel1, sel2)

Fico no aguardo

 
Postado : 18/09/2016 7:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Fazendo novos teste aqui, consigo selecionar a colunas e linha desejada MAS de maneira estática, isto é não tenho controle sobre qual coluna atuar.

             Sheets(wrLinha.Name).Select '------> Tenho que ativar primeiro a planilha a ser aplicada o Range
            Plan5.Shapes.AddChart2(201, xlColumnClustered).Select '------> Aqui é criado o painel do Gráfico
            ActiveChart.SetSourceData Source:=ActiveSheet.Range("B4:B27, D4:D27") '-----> Aqui é aplicado o gráfico a partir da seleção MAS não tenho controle sobre as posições Range

ActiveChart.SetSourceData Source:=ActiveSheet.Range("B4:B27, D4:D27")

("B4:B27, D4:D27") <------- Tenho que atacar a posição para ter controle.

Já tentei assim e não funciona
ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
ActiveSheet.Range(Cells(4, 5), Cells(12, 6))

Fico no aguardo

 
Postado : 18/09/2016 10:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Problema resolvido

Cross Tópico: http://gurudoexcel.com/forum/viewtopic.php?f=12&t=3061&p=15320#p15320

 
Postado : 19/09/2016 9:43 pm