Eu tenho um número significativo de itens que exigem formulários diferentes para serem solicitados. Um trecho da tabela que eu tenho parece com isso:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
A - - C - - - - - C - - - - -
B - - - - C - C - - - - - - C
Significa que, para o item A, devo incluir os formulários 3 e 9; para o item B, formulários 5.7 e 14.
É possível gerar uma pasta de trabalho com o título do item que contém os formulários relevantes como planilhas.
(os formulários em si são folhas de excel simples que podem ser renomeadas / manipuladas conforme necessário)
Qualquer ajuda seria muito apreciada, pois há centenas de itens e dezenas de formulários e, portanto, importar manualmente as folhas para cada item, por sua vez, seria extremamente demorado!
obrigado
microsoft-excel
Sam Wall
fonte
fonte
Respostas:
Sam, aqui está um começo de como lidar com esse problema interessante.
Eu configurei uma planilha semelhante à sua, exceto que eu rotulei as colunas com os nomes dos formulários e as linhas com os novos nomes da Planilha como você pode ver abaixo:
Você notará que a tabela com as condições está na primeira guia e os formulários estão nas outras guias. Os nomes nas guias correspondem exatamente aos nomes dos formulários na linha 1 da tabela.
Em seguida, entrei no modo de desenvolvedor e criei uma nova macro. e digitei o código:
A macro in-situ se parece com isso:
Esse código não faz todas as verificações que podem ser feitas nem inclui a criação de novas pastas de trabalho (você pode adicionar isso à sua macro). Para que isso funcione, você precisa criar e salvar as pastas de trabalho em branco com os nomes exatos que você tem na primeira coluna da tabela (por exemplo, Workbook1.xlsx e Workbook1.xlsx no meu exemplo). Essas pastas de trabalho precisam estar abertas para o código funcionar.
Finalmente, pressione "Executar" para executar a macro. Você verá o seguinte:
A mensagem aparece sempre que um formulário é copiado para uma pasta de trabalho. Você pode desligar a mensagem comentando no código. Caso contrário, pressione 'OK' até que todos os formulários sejam copiados. O resultado é o seguinte:
É isso aí! Espero que isso ajude e, se você modificar o código para obter uma solução melhor, poste-o de volta para que todos possamos nos beneficiar.
fonte
Script Out Of Range
já que o código não consegue encontrar o caminho para os arquivos em que os formulários (planilhas) devem ser copiados, corrija o código !!Obrigado a todos que ajudaram, esta é a macro final que usei:
fonte