Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Código para copiar entre planilhas está apresentando erro [Resolvido]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
douglasr20
Colaborador
Colaborador
Mensagens: 11
Registrado em: Sex Jul 03, 2020 5:56 pm

Código para copiar entre planilhas está apresentando erro [Resolvido]

Mensagem por douglasr20 »

Olá! Através de um tutorial escrevi esse código VBA, que é para copiar as linhas para outra planilha e excluir essas linhas em seguida, com critério. Segue abaixo o código:

Sub arquivar()
'
' Arquivar
'
Dim LinhaAtual As Long
Dim UltimaLinha As Long
Dim W As Worksheet
Dim Linha As Integer

Set W = Sheets("REGISTROS")

UltimaLinha = W.UsedRange.Rows.Count

Linha = 3

With W
For LinhaAtual = 1 To UltimaLinha

If Cells(LinhaAtual, "G") <> "" Then
Sheets("ARQUIVO").Cells(Linha, 2) = Format(.Cells(LinhaAtual, 2), "DD/MM/YYYY")
Sheets("ARQUIVO").Cells(Linha, 3) = .Cells(LinhaAtual, 3)
Sheets("ARQUIVO").Cells(Linha, 4) = Format(.Cells(LinhaAtual, 4), "currency")
Sheets("ARQUIVO").Cells(Linha, 5) = .Cells(LinhaAtual, 5)
Sheets("ARQUIVO").Cells(Linha, 6) = Format(.Cells(LinhaAtual, 6), "DD/MM/YYYY")
Sheets("ARQUIVO").Cells(Linha, 7) = Format(.Cells(LinhaAtual, 7), "DD/MM/YYYY")
Linha = Linha + 1
.Rows(LinhaAtual).Delete

Else

End If
Next LinhaAtual

End With

End Sub

Só que está ocorrendo o seguinte erro:

Imagem

Imagem

Se alguém puder me dar uma força para corrigir esse código, eu ficarei muito grato.
Editado pela última vez por douglasr20 em Sáb Fev 20, 2021 6:06 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Código para copiar entre planilhas está apresentando erro

Mensagem por webmaster »

Ter a planilha com os dados ajudaria. De toda forma, depurando o código, qual o valor da LinhaAtual quando falha?


douglasr20
Colaborador
Colaborador
Mensagens: 11
Registrado em: Sex Jul 03, 2020 5:56 pm

Re: Código para copiar entre planilhas está apresentando erro

Mensagem por douglasr20 »

Então, aparece a mensagem de erro somente e a macro não roda. Segue abaixo, os print das planilhas:

Imagem
Imagem

A minha intenção é de que quando a macro for executada, as linhas entre as colunas B a G serão copiadas para a planilha ARQUIVOS, somente se as células da coluna G estiverem preenchidas com a data. Logo após, essas mesmas linhas serão apagadas da planilha REGISTRO. Esses intervalo estão configurados como tabelas nas duas planilhas. Não sei se o erro é por causa disso.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Código para copiar entre planilhas está apresentando erro

Mensagem por webmaster »

douglas,

Tem um erro conceitual no código. Você está copiando e deletando a linha na mesma interação. Uma simples depuração o teria ajudado a identificar o problema.

Vamos lá:

Você começa a interação pela linha 1, que não tem dados. Isso já é um desperdício de processamento.
O primeiro laço copia os dados a linha 1, em seguida a deleta, em seguida, pula uma linha. Ou seja, a primeira iteração copia e deleta a linha 1, a segunda a linha 3, depois a 5, e por aí vai.

Refiz o arquivo aqui e pelo menos não deu erro. Vou lhe dar a oportunidade de resolver o problema por conta. Recomendo que faça a copia das linhas e só depois as exclua. Isso vai evitar maiores problemas.
Anexos
f=20&t=7888.zip
(17.65 KiB) Baixado 149 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


douglasr20
Colaborador
Colaborador
Mensagens: 11
Registrado em: Sex Jul 03, 2020 5:56 pm

Re: Código para copiar entre planilhas está apresentando erro

Mensagem por douglasr20 »

Vou testar aqui.


douglasr20
Colaborador
Colaborador
Mensagens: 11
Registrado em: Sex Jul 03, 2020 5:56 pm

Re: Código para copiar entre planilhas está apresentando erro [Resolvido]

Mensagem por douglasr20 »

Muito obrigado! O código está funcionando. Desculpe a demora do retorno.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder