VBA Pesquisar por 2 dados diferentes e retornar apenas campos escolhidos


#1

Olá pessoal, como minha dúvida é sobre um arquivo do trabalho, infelizmente não poderei postá-lo aqui, mas tentarei explicar tudo o que preciso.

Possuo uma planilha BASE e uma planilha IMPRIMIR.

Na planilha BASE possuo todos os dados como: data / período / código / nome / referencia e mais umas 10 colunas

Na planilha IMPRIMIR, preciso colocar os dados referente a data consultada de cada período: exemplo: supondo que vou imprimir o período “1” do dia “09/07/2018”, então digitarei apenas a data em uma célula qualquer na planilha IMPRIMIR e nas linhas debaixo deverá ser preenchido as colunas código / nome / referência / e mais 5 colunas aleatórias.

Já consegui fazer com função matricial envolvendo SEERRO, INDICE, MENOR, SE, LIN, porém no meu trabalho os sistemas são rodados a partir de um servidor e acaba dando erro de recurso no Excel pela função matricial. Pensando nisso acredito que pelo método VBA devá acelerar o processo e utilizar menos recurso do Excel no servidor.

Espero que tenha conseguindo me fazer entender. Conheço VBA, porém nunca usei no excel.

Muito obrigado a quem puder me ajudar.


#2

@kikoerick, acho que não tive pleno entendimento de como estão os seus dados e o que precisa ser feito, mas já tentou com BDEXTRAIR?

https://blog.luz.vc/excel/melhores-funcoes-para-bancos-de-dados-em-excel/


#3

Ainda não tentei essa… mas com ela é possível pegar colunas em mais de uma linha?

Assim, os colaboradores executam diversas funções durante seu turno de trabalho dentro do mesmo dia… O que eu quero é pegar o que cada turno fez em um dia específico. Consegui explicar melhor?


#4

@kikoerick, neste caso, monte uma planilha fictícia exatamente no mesmo formato e endereçamento da original e poste aqui. Assim alguém poderá ajudar a construir uma solução que poderá ser replicada na planilha original.

Se preferir uma consultoria profissional, mande um e-mail para exlplanilhas@gmail.com explicando o problema e, se possível, com a planilha (original ou fictícia).


#5

Vou tentar exemplificar novamente:

Preciso que o Excel retorne todos os registros do dia 10/07/2018 do turno 1.

Os registros são: número da ficha, placa, nota fiscal, produto, analises, horário e responsável.


#6

Xavier, muito uma planilha aqui parecida. Mas não consigo colocá-la aqui porque estou com o status no “novo usuário”, posso mandar para o seu e-mail e pode me responder por aqui?


#7

@kikoerick, foi criada uma função matricial para obter o resultado como segue:

{=SEERRO(ÍNDICE(Base!$A:$J;MENOR(SE(Base!$A:$A=$B$1;LIN(Base!$A:$A));LIN(A1));COL(C$1));"")}


#8

Caro amigo Xavier, obrigado pela ajuda, essa fórmula eu já tinha feito mas da erro aqui no meu trabalho:

“Já consegui fazer com função matricial envolvendo SEERRO, INDICE, MENOR, SE, LIN, porém no meu trabalho os sistemas são rodados a partir de um servidor e acaba dando erro de recurso no Excel pela função matricial. Pensando nisso acredito que pelo método VBA devá acelerar o processo e utilizar menos recurso do Excel no servidor.”

Então não da para ser via fórmula. Preciso de outra solução.