Grafico simples por...
 
Notifications
Clear all

Grafico simples porem complicado

10 Posts
3 Usuários
0 Reactions
2,103 Visualizações
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Boa Tarde galera,

Preciso da ajuda de voces. Criei uma planilha e preciso criar um grafico que contem dados como o nº de um voo e a quantidade de vezes em que ele aparece em uma lista.
O que acontece é que para alimentar essa lista, eu tenho que acessar uma outra aba de cadastro, faço o cadastro do voo, clico num botao "salvar" (com uma macro atribuida), e esses dados sao inseridos nessa aba de banco de dados, entenderam???

O que eu quero é o seguinte: Preciso gerar um grafico que me faça a relação entre o numero dos voos inserido nesse banco de dados e a quantidade de vezes em que ele aparece, exemplo:
VOO Qntd
GOL 1634 2
Isso é possivel?

Me ajudem,
Abraços.

 
Postado : 29/07/2014 2:53 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!

Sim é possível, vc pode fazer com range dinâmico, pode fazer com tabela dinâmica e com VBA, pesquise sobre range dinâmico aqui no fórum tem um artigo do Fernando que pode esclarecer todas as suas duvidas.

Doni

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

 
Postado : 29/07/2014 5:24 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Existem mil maneiras! Valeu por lembrar Doni!
Eu sinceramente usaria o range dinâmico na base dos voos, e tb faria um botão para copiar os voos de lá e colar no relatório, e em seguida remover duplicados.
Daih, é só usar um cont.se() simples...

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

 
Postado : 29/07/2014 5:55 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 
Public Sub TrazerDados()
Dim shtRelatorio    As Excel.Worksheet
Dim shtVoos         As Excel.Worksheet
Dim rngVoos         As Excel.Range
Dim RangeDinamico   As String
    
    Set shtRelatorio = ThisWorkbook.Worksheets("Relatório")
    Set shtVoos = ThisWorkbook.Worksheets("Vôos")
    
    RangeDinamico = "=OFFSET('" & shtVoos.Name & "'!$A$1,1,0,COUNTA('" & shtVoos.Name & "'!$A:$A)-1,1)"
    ThisWorkbook.Names.Add Name:="Vôos", RefersTo:=RangeDinamico
    
    Set rngVoos = DefinirIntervalo(shtVoos, "Vôos")
    If Not rngVoos Is Nothing Then
    
        rngVoos.Copy shtRelatorio.Range("A2")
        shtRelatorio.Range("B2:B" & rngVoos.Rows.Count + 1).FormulaR1C1 = "=COUNTIF(Vôos,RC1)"
        shtRelatorio.Range("A2").CurrentRegion.RemoveDuplicates Columns:=1
        
        
    End If
    
    
    Set rngVoos = Nothing
    Set shtVoos = Nothing
    Set shtRelatorio = Nothing
End Sub

Private Function DefinirIntervalo(ByRef sht As Excel.Worksheet, ByVal Nome As String) As Excel.Range
On Error Resume Next
    Set DefinirIntervalo = sht.Range(Nome)
End Function

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

 
Postado : 29/07/2014 7:08 pm
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Galera entao,

Sou ainda um usuario que nao é avvançado, portanto, ainda estou encontro dificuldades na ajuda em que me deram. Dei uma olhada no codigo e tal, mas nao consigo ainda ter essa facilidade em trabalhar com VBA. Se eu colocar aqui a planilha e me ajudarem a montar direto nela, vcs me ajudariam?

abraços.

 
Postado : 29/07/2014 7:45 pm
(@gesus)
Posts: 44
Eminent Member
 

Bom dia, Caro!

Vou passar a Solução simples para seu pequeno problema.
Na Coluna Onde consta o nome dos Voos, selecione a coluna inteira, Ex: A:A
No Canto esquerdo, Ao Lado da (Barra de formulas) (Local onde aparece a celula que esta ativa!
Coloque um nome para a Coluna (NomesDosVoos) e em algum lugar da planilha ou em outra planilha (no mesmo arquivo),
Coloque os nomes de todos os voos possíveis, (ou utilize um vba que quando inserido um voo no banco de dados,
realize a consulta na lista e se não tiver, inclua em nossa list).

Digamos que a lista esta planilha (Dados do Grafico)
A lista inicia na
A2 = GOL
A3 = TAM
A4 = AZUL
... = ...
Ao lado dos nomes da lista insira a formula: =Cont.se(NomesDosVoos;A2)
Pronto. dados serão "Dinâmicos"

Insira um gráfico de Pizza e vamos seguir agora o passo para colocar os valores em %!

Insira rótulos de dados e clique com o botão esquerdo do mouse e clique em Formatar rótulos de Dados
Na lista de opções a Esquerda temos
1º - Opções de Rótulo - Em seguida Conteúdo do Rotulo - Desmarque a opção Valor e Marque a Opção = Porgentagem

O Intervalo onde o gráfico pegara os valores, tem um jeito de usar a Formula (Desloc em Gráficos eu não manjo)
Então usa o VBA

Range("A2").Select
Do While ActiveCell.Value <> ""
NomeDoVooNaLista = NomeDoVooNaLista + 1
ActiveCell.Offset(1, 0).Select
Loop

ActiveSheet.ChartObjects("Gráfico 1").Activate
ActiveChart.SetSourceData Source:=Range("B1:C" & NomeDoVooNaLista)

Pronto terá um gráfico simples porém complicado.

Se ajudar não esqueça de Clicar na mãozinha!!

Valeu :D

 
Postado : 31/07/2014 8:07 am
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Fala Galera,

Ai esta a planilha compactada. Qualquer ajuda me digam.

abraços.

 
Postado : 31/07/2014 8:42 am
(@gesus)
Posts: 44
Eminent Member
 

Segue em anexo.

Abcs

Gesus Viegas

 
Postado : 31/07/2014 10:48 am
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Segue em anexo.

Abcs

Gesus Viegas

Fala Gesus,

Gostei bastante!!!! Mas deixa eu t perguntar uma coisa: Posso utilizar o mesmo esquema para fazer um grafico por meses, e por responsavel???

abs

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

Bom dia afbergman

Como vc gostou da resposta do Gesus, já deveria ter clicado na mãozinha que fica do lado da ferramenta Citar.

Você deve clicar na mãozinha de qualquer resposta que tenha te ajudado, mesmo que não seja no teu tópico.

Fazendo isso você irá incentivar as pessoas a continuarem ajudando, pois acrescenta pontuação.

A ferramenta para dar o tópico como Resolvido é o V que fica depois de Editar.

At.te

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

 
Postado : 02/08/2014 7:28 am