Boa tarde pessoal, tudo bem?
Estou com um problema que não consigo resolver sozinho, imagino que vocês possa me dar um apoio:
Estou montando uma planilha para controle de horas dos funcionários. Na aba de lançamento de horas, criei uma tabela com hora de início, fim, etc. Nessa tabela tenho 2 listas suspensas para organizar as tarefas com alguns critérios. Essas listas suspensas são correlacionadas Exemplo:
Se na 1ª escolho "A", na segunda vai aparecer "10, 20, 30..."
Se na 1ª escolho "B", na segunda vai aparecer "coração, estrela, triângulo,..."
Essa 1ª aba está ok!
Tenho uma 2ª aba, onde lançaremos as atividades. Nessa tabela lançaremos os itens aleatoriamente, porém no seu preenchimento teremos um TAG, cuja função é separar os itens de forma a criar as listas suspensas (o TAG seria "A", "B", etc, conforme exemplo acima). Enquanto utilizo colunas auxiliares e o conjunto de fórmulas ÍNDICE, CORRESP, funciona belezinha!
Temos o exemplo em anexo.
Problema: essa solução que bolei faz o arquivo ficar muito GRANDE e PESADO. Na Internet comenta-se que fórmulas que utilizam matrizes fazem o arquivo ficar grande e lento.
Acontece que o exemplo é uma planilha extremamente resumida. A condição das listas suspensas, e suas colunas auxiliares, se repetem umas 58 vezes. Já testei aqui com o lançamento de dados (que podem ultrapassar as centenas de linhas facilmente) e o arquivo chegar a travar o computador, quando arrasto a tabela de tarefas. Até a lista suspensa fica lenta!
Dúvida: Se o problema está nas fórmulas ÍNDICE e CORRESP (que utilizam matrizes), tem como substitui-las por VBA? Só um detalhe: a tabela de tarefas pode crescer de forma livre (aumentando o número de linhas), então penso numa condição: se alguma célula da nova linha estiver preenchida, o VBA "cola" a fórmula na posição desejada.
Eu sei que o ideal é criar um banco de dados no access, mas não tenho a manha.
Obrigado e um abraço
Renato
DUVIDA.xlsx