Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Codigo para repetir uma instrução
-
- Colaborador
- Mensagens: 25
- Registrado em: Seg Jun 03, 2019 11:22 am
Codigo para repetir uma instrução
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
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
-
- Manda bem
- Mensagens: 173
- Registrado em: Qua Mai 17, 2017 2:27 pm
Re: Codigo para repetir uma instrução
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
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
-
- Colaborador
- Mensagens: 25
- Registrado em: Seg Jun 03, 2019 11:22 am
Re: Codigo para repetir uma instrução
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...
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...
-
- Manda bem
- Mensagens: 173
- Registrado em: Qua Mai 17, 2017 2:27 pm
Re: Codigo para repetir uma instrução
Ok, nos enviando a planilha modelo acredito ficar mais fácil.
Atenciosamente
Tov Elen Shau
Atenciosamente
Tov Elen Shau
-
- Colaborador
- Mensagens: 25
- Registrado em: Seg Jun 03, 2019 11:22 am
Re: Codigo para repetir uma instrução
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...
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 186 vezes
Re: Codigo para repetir uma instrução
leandropotter2019,
Veja se as alterações feitas no modelo disponibilizado, atendem sua necessidade.
Espero ter ajudado.
Abs
Veja se as alterações feitas no modelo disponibilizado, atendem sua necessidade.
Espero ter ajudado.
Abs
- Anexos
-
- teste.zip
- (23.38 KiB) Baixado 193 vezes
-
- Colaborador
- Mensagens: 25
- Registrado em: Seg Jun 03, 2019 11:22 am