Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Utilize essa sessão para criar tópicos relacionados a tabelas dinâmicas, formatações condicionais, subtotais, filtros, etc
  • Avatar do usuário
  • Avatar do usuário
Avatar do usuário
Por cristianff
Avatar
#5526
Bom dia pessoal.
Deixa eu explicar o que eu preciso da ajuda de vocês.

Tenho uma planilha dinâmica que consulta o banco de dados e gera um relatório de comissão dos representantes, na primeira coluna ta tabela eu tenho o código do mesmo.
Como a tabela é inteiramente dinâmica, única coisa que falta para ficar 100% na hora de imprimir o relatório, é quando o filtro do representante por selecionado, ele de alguma maneira preenchesse o código e o nome via procv (pode ser) em frente ao campo onde eu indico o nome.

Vou postar uma imagem da tabela.
Imagem

Quando o usuário selecionar o filtro da coluna "REP", o Excel levar esse código na coluna/linha D3 aí com o código eu posso fazer um PROCV para o nome do representante que foi selecionado.

Com alguma função do Excel eu conseguiria fazer isso ou apenas com VB?

Grato e obrigado a todos.
Editado pela última vez por cristianff em 04 Dez 2015 às 09:09, em um total de 1 vez.
Avatar do usuário
Por Parkeless
Posts Avatar
#5527
Bom dia!

A imagem não apareceu :s
#5534
Bolei uma forma de retornar o nome do filtro atual, mas é mais uma ideia pra você adaptar; retornando o nome do filtro, você consegue usar um Procv.

Dá uma olhada
Você não está autorizado a ver ou baixar esse anexo.
#5552
Parkeless escreveu:Bolei uma forma de retornar o nome do filtro atual, mas é mais uma ideia pra você adaptar; retornando o nome do filtro, você consegue usar um Procv.

Dá uma olhada
Provavelmente vai dar certo para a milha planilha, vou testar essa solução e posto a resposta aqui com a planilha de exemplo para ficar de base de consulta.

Por enquanto muito obrigado.
Avatar do usuário
Por cristianff
Avatar
#5553
Tentei usar aqui, a solução funciona perfeitamente se usar uma Tabela Dinâmica via powerpivot ou usando uma fonte de dados interna mesmo.

Eu utilizo uma SQL pra consultar o banco e insere direto na pasta de trabalho, assim quando eu aplico o filtro, a próxima linha segundo a sua fórmula não será a linha 4 e sim a linha referente ao filtro com as linhas omitidas pelo filtro.

No filtro que eu aplico eu tenho que mostrar todas as linhas do referido representante.
Veja o anexo que vai ser mais fácil de visualizar.

Abraço.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Parkeless
Posts Avatar
#5555
Cristian,

Realmente com filtros comuns não vai funcionar, porque ele age diferente do de uma tabela dinâmica...

Não há a possibilidade de deixar esse relatório via SQL, como tabela dinâmica?

Se não houver, posso tentar verificar alguma forma de fazer com VBA... :s
#5561
Parkeless escreveu:Cristian,

Realmente com filtros comuns não vai funcionar, porque ele age diferente do de uma tabela dinâmica...

Não há a possibilidade de deixar esse relatório via SQL, como tabela dinâmica?

Se não houver, posso tentar verificar alguma forma de fazer com VBA... :s
Acho que uma opção vai ser desmembrar por abas e em cada uma o seu respectivo representante.
Como o filtro de data eu iria alterar manualmente no script que busca a informação no banco de dados, utilizando desta maneira vai dar muita manutenção pois se eu tiver 20 representantes eu terei que fazer um a um quando virar o mês, na realidade tem mais de 40 representantes.
Fazendo numa mesma planilha, eu alteraria a data inicial e final apenas uma vez e utilizaria o filtro.

Vou estudando aqui a melhor opção.
Avatar do usuário
Por Parkeless
Posts Avatar
#5566
Cristian, tenta essa função:
Código: Selecionar todos
Function Filtro_Atual(Intervalo As Range)
Dim cell As Range
Dim texto As String

For Each cell In Intervalo 'Para cada célula no intervalo
If cell.EntireRow.Hidden = False Then 'Verificar primeiro valor não filtrado
    texto = cell
    GoTo Procurar_mais 'verificar se há mais filtros
End If

Next cell

Procurar_mais:
For Each cell In Intervalo 'Para cada célula no intervalo
If cell.EntireRow.Hidden = False And cell <> texto Then
    texto = "Vários"
    Goto Final
End If

Next cell
Final:
Filtro_Atual = texto

End Function

Cola em um módulo, então vá em uma célula e digite, "=Filtro_Atual(Intervalo)"

Sendo "Intervalo" seu range de células que estão sujeitas ao filtro (sem o cabeçalho).

A função vai retornar o primeiro valor que encontrar, que não esteja filtrado. Se ela encontrar mais de um valor, retorna "Vários".

Te atende?
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord