Estou com um problema em meu trabalho, que creio eu, é simples de se fazer porém meu conhecimento em VBA é um pouco básico ainda!
É o seguinte:
Duas planilhas, na primeira eu tenho diversas informações sobre um determinado produto, incluindo nome, lote etc.. e na segunda planilha puxo as informações jogando um lote, que roda uma macro com um SELECT no servidor e puxa os dados daqueles lotes para células abaixo..
Exemplo
Planilha 1:
Produto | Lote | Status
A | 123 |
Planilha 2:
Lote = 123
__________________________________________
Produto | Lote | Status
A | 123 | Utilizado
Basicamente tenho que pegar o lote da plan1, jogar na plan2, rodar a macro de atualização (que puxa os dados por sql), aguardar uns momentos (estou utilizando o Application.Wait para isso, não sei se é a melhor forma), depois que gerar os dados, vou na célula que aparece o status, copio e colo na plan1
Vamos lá, problemas que eu obtive:
* 1: São varias unidades então, pode aparecer assim:
Produto | Lote | Status
A | 123 | Utilizado
A | 123 | Disponível
A | 123 | Utilizado
A | 123 | Disponível
Com isso na hora que eu realizo a cópia não fica os dados certinhos, para resolver isso, na hora que vou gravar a colagem de dados na macro eu coloco numa coluna depois e com os parâmetro de transpor e uso o concatenar(), exemplo:
Com isso resolve uma parte dos meus problemas, quando eu fazia este processo manual eu abria o notepad (no Windows mesmo), colava todas as células lá, ctrl + a, ctrl + c, ia na célula que eu precisava colocar apertava F2, ctrl + v e já vinha formatado do jeito que eu precisava, não sei se teria outro modo de resolver isso, mas neste caso a resolução do concatenar já está resolvendo bem!
* 2: Este é o principal, quando eu fui executar o script, no depurador indicou uma linha que eu não consegui resolver, pesquisei um pouco e vi que era referente a consulta no SQL que a planilha fazia, foi o seguinte erro:
Referesh BackgroundQuery:=False.. (Tinha mais alguns dados mas não estou com a planilha neste momento, só me lembrava dessa parte)
Quando eu mudava para true, ai acusava um erro mesmo dizendo que a planilha estava fazendo atualizações em segundo plano (creio ser devido ao que falei sobre quando eu ativo a macro de atualização ele faz uma busca no banco de dados para encontrar as informações referentes ao lote digitado.
Acabei escrevendo demais, não sou muito acostumado com fóruns mas desta vez não consegui encontrar solução para o meu problema, se alguém estiver disposto a me ajudar, fico grato!
Pergunta
felipefilp
Boa tarde!
Estou com um problema em meu trabalho, que creio eu, é simples de se fazer porém meu conhecimento em VBA é um pouco básico ainda!
É o seguinte:
Duas planilhas, na primeira eu tenho diversas informações sobre um determinado produto, incluindo nome, lote etc.. e na segunda planilha puxo as informações jogando um lote, que roda uma macro com um SELECT no servidor e puxa os dados daqueles lotes para células abaixo..
Exemplo
Planilha 1:
Produto | Lote | Status
A | 123 |
Planilha 2:
Lote = 123
__________________________________________
Produto | Lote | Status
A | 123 | Utilizado
Basicamente tenho que pegar o lote da plan1, jogar na plan2, rodar a macro de atualização (que puxa os dados por sql), aguardar uns momentos (estou utilizando o Application.Wait para isso, não sei se é a melhor forma), depois que gerar os dados, vou na célula que aparece o status, copio e colo na plan1
Vamos lá, problemas que eu obtive:
* 1: São varias unidades então, pode aparecer assim:
Produto | Lote | Status
A | 123 | Utilizado
A | 123 | Disponível
A | 123 | Utilizado
A | 123 | Disponível
Com isso na hora que eu realizo a cópia não fica os dados certinhos, para resolver isso, na hora que vou gravar a colagem de dados na macro eu coloco numa coluna depois e com os parâmetro de transpor e uso o concatenar(), exemplo:
A | 123 | =Concatenar(E3,F3..) | Utilizado | Disponível | Utilizado | Disponível
Com isso resolve uma parte dos meus problemas, quando eu fazia este processo manual eu abria o notepad (no Windows mesmo), colava todas as células lá, ctrl + a, ctrl + c, ia na célula que eu precisava colocar apertava F2, ctrl + v e já vinha formatado do jeito que eu precisava, não sei se teria outro modo de resolver isso, mas neste caso a resolução do concatenar já está resolvendo bem!
* 2: Este é o principal, quando eu fui executar o script, no depurador indicou uma linha que eu não consegui resolver, pesquisei um pouco e vi que era referente a consulta no SQL que a planilha fazia, foi o seguinte erro:
Referesh BackgroundQuery:=False.. (Tinha mais alguns dados mas não estou com a planilha neste momento, só me lembrava dessa parte)
Quando eu mudava para true, ai acusava um erro mesmo dizendo que a planilha estava fazendo atualizações em segundo plano (creio ser devido ao que falei sobre quando eu ativo a macro de atualização ele faz uma busca no banco de dados para encontrar as informações referentes ao lote digitado.
Acabei escrevendo demais, não sou muito acostumado com fóruns mas desta vez não consegui encontrar solução para o meu problema, se alguém estiver disposto a me ajudar, fico grato!
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.