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

Codigo para repetir uma instrução

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
leandropotter2019
Colaborador
Colaborador
Mensagens: 25
Registrado em: Seg Jun 03, 2019 11:22 am

Codigo para repetir uma instrução

Mensagem por leandropotter2019 »

Bom dia

Tenho uma pasta de trabalho que pega uma lista de materiais em uma planilha e vai jogando em outra planilha alguns destes dados. Preciso de um código que continue fazendo este procedimento varias vezes, hoje eu tenho que fazer um de cada vez. Ele pega o valor da celula ativa e joga na outra planilha os dados respectivos desta celula, mas preciso que terminando de realizar este procedimento, volte a planilha, selecione a proxima célua abaixo e faça novamente, até que a proxima celula abaixo esteja vazia…

Este é o código, ele começa na celula BC4 da planilha “Entrada NFE.XML”. Preciso que ele repita até que a proxima celula da planilha nesta coluna esteja vazia.

Private Sub inserir_Click()

Linha = 3

Sheets(“materiais”).Select
Range(“A3”).Select

'desproteje a planilha
ActiveSheet.Unprotect

Do Until Sheets(“materiais”).Cells(Linha, 1) = “”
'condicção para localizar o código
If Sheets(“materiais”).Cells(Linha, 1) = TextBox7 Then
'seleciona célula com o código
Sheets(“materiais”).Cells(Linha, 1).Select

ActiveCell.Offset(0, 13).Select
ActiveCell = ActiveCell + TextBox2

ActiveCell.Offset(0, -4).Select
ActiveCell = TextBox3

ActiveCell.Offset(0, 2).Select
ActiveCell = TextBox6

ActiveCell.Offset(0, 1).Select
ActiveCell = TextBox8
End If
Linha = Linha + 1
Loop

Range(“A3”).Select

'proteje a planilha
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True

Sheets(“Entrada NFE.XML”).Select

End Sub


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.


Tov Elen Shau
Manda bem
Manda bem
Mensagens: 173
Registrado em: Qua Mai 17, 2017 2:27 pm

Re: Codigo para repetir uma instrução

Mensagem por Tov Elen Shau »

Colega, sem a planilha modelo é mais difícil fazer, mas olha só, faça o código verificar se a célula está vazia, se não estiver executa sua rotina.
Exemplo;
Do
If ActiveCell.Value <> Empty Then 'verifica se a céula está vazia

'Seu código aqui se não estiver vazia.

ActiveCell.Offset(1, 0).Select 'Após executar, ir para linha debaixo| para coluna ao lado usar (0,1)
End If
Loop Until ActiveCell.Value = Empty 'Faça até encontrar uma célula vazia
'----------------

'Faz um teste, aqui não tem como.
Private Sub inserir_Click()

Linha = 3

Sheets("materiais").Select
Range("A3").Select

'desproteje a planilha
ActiveSheet.Unprotect


'Colega, o faça ele verificar se a célula está vazia, se não estiver executa seu código
Do
If ActiveCell.Value <> Empty Then 'verifica se a céula está vazia

'Seu código aqui se não estiver vazia.




'Se a célula vazia for diferente de vazia então...



Do Until Sheets("materiais").Cells(Linha, 1) = ""
'condicção para localizar o código
If Sheets("materiais").Cells(Linha, 1) = TextBox7 Then
'seleciona célula com o código
Sheets("materiais").Cells(Linha, 1).Select

ActiveCell.Offset(0, 13).Select
ActiveCell = ActiveCell + TextBox2

ActiveCell.Offset(0, -4).Select
ActiveCell = TextBox3

ActiveCell.Offset(0, 2).Select
ActiveCell = TextBox6

ActiveCell.Offset(0, 1).Select
ActiveCell = TextBox8
End If
Linha = Linha + 1
Loop

Range("A3").Select

ActiveCell.Offset(1, 0).Select 'Após executar, ir para linha debaixo| para coluna ao lado usar (0,1)
End If
Loop Until ActiveCell.Value = Empty 'Faça até encontrar uma célula vazia




'proteje a planilha
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True

Sheets("Entrada NFE.XML").Select

End Sub


leandropotter2019
Colaborador
Colaborador
Mensagens: 25
Registrado em: Seg Jun 03, 2019 11:22 am

Re: Codigo para repetir uma instrução

Mensagem por leandropotter2019 »

Boa Tarde Amigo!

o código gira tranquilo até encontrar a celula vazia, mas so joga os valores de um dos itens do XML na planilha de estoque.
Mas ta tranquilo, eu consigo fazer funcionar fazendo a inserção de um item por vez, leva um pouco mais de tempo mas nao tem problema...

Vou ver se consigo criar uma planilha mais simples de exemplo desta operação e mandar aqui em breve...


Tov Elen Shau
Manda bem
Manda bem
Mensagens: 173
Registrado em: Qua Mai 17, 2017 2:27 pm

Re: Codigo para repetir uma instrução

Mensagem por Tov Elen Shau »

Ok, nos enviando a planilha modelo acredito ficar mais fácil.

Atenciosamente

Tov Elen Shau


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.


leandropotter2019
Colaborador
Colaborador
Mensagens: 25
Registrado em: Seg Jun 03, 2019 11:22 am

Re: Codigo para repetir uma instrução

Mensagem por leandropotter2019 »

Bom dia!

Como Prometi, estou mandando uma planilha de exemplo.
Eu abro um UserForm que pega o primeiro item selecionado e joga o valor da QTD na tabela de estoque, mas só joga este primeiro item e depois seleciona o proximo. Preciso que faça automaticamente o mesmo processo com o segundo item e os proximos até encontrar a primeira celula vazia e parar.

Grato...
Anexos
teste.rar
(19.01 KiB) Baixado 175 vezes


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Codigo para repetir uma instrução

Mensagem por srobles »

leandropotter2019,

Veja se as alterações feitas no modelo disponibilizado, atendem sua necessidade.

Espero ter ajudado.

Abs
Anexos
teste.zip
(23.38 KiB) Baixado 181 vezes


leandropotter2019
Colaborador
Colaborador
Mensagens: 25
Registrado em: Seg Jun 03, 2019 11:22 am

Re: Codigo para repetir uma instrução

Mensagem por leandropotter2019 »

Bom dia!

Deu certo nesta planilha sim, muito obrigado...


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