Тёмный

EXCEL VBA DO LOOP UNTIL - LAÇO de REPETIÇÃO + ANÁLISE com IF 

CANAL SGP
Подписаться 67 тыс.
Просмотров 11 тыс.
50% 1

Passo a passo para utilizar Do Loop Until no vba para percorrer células da planilha Excel e fazer análise dos dados. Neste exemplo trabalhamos com laço de repetição e análise através de condições if dentro do Loop Until do vba. Além de abordar o código vba Exit do utilizado para sair do loop sem que tenha chegado ao final da área de análise de dados na Planilha Excel. Com o uso da estrutura Do Until no vba, é possível definir um loop que repete um conjunto de ações até que uma condição seja atendida.
✅Site SGP: Venda de Coleção de Planilhas Excel VBA Prontas:
www.planilhasc...
==========================================

Опубликовано:

 

21 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 58   
@anacleideflorencio4020
@anacleideflorencio4020 31 минуту назад
Bom dia, Tem como fazer loop de 5 colunas da planilha, senda que cada coluna tem um cálculo diferente, e eu queria um código que fizesse o loop que fosse mais rápido no processo.
@coroinhajb2957
@coroinhajb2957 2 года назад
obrigado por ajudar compartilhando seu conhecimento.
@CanalSGP
@CanalSGP 2 года назад
De nada.
@ricardofilho9830
@ricardofilho9830 7 месяцев назад
Parabéns Professor, ótimo video. Eu estou com uma situação parecida, mas eu preciso colar varias vezes o mesmo resultado em loop, usando como referencia a coluna 2
@CanalSGP
@CanalSGP 7 месяцев назад
Bom dia, obrigado, acredito que a estrutura de análise vai ser semelhante.
@ricardofilho9830
@ricardofilho9830 7 месяцев назад
@@CanalSGP With Planilha9 Do Linha = Linha + 1 Loop Until .Cells(Linha, 11).Value = "" .Cells(Linha, 11).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Aqui eu não estou conseguindo fazer com que ela use a coluna 2 como referencia e cole o mesmo resultado em loop até o final da planilha na coluna 11. Do jeito que está, ela está somente identificando a ultima linha vazia na coluna 11 e colando uma vez só.
@CanalSGP
@CanalSGP 7 месяцев назад
Boa tarde, se deseja a coluna 2 altere onde tem 11 para 2
@cicerolobo7583
@cicerolobo7583 8 месяцев назад
Excelente...
@CanalSGP
@CanalSGP 8 месяцев назад
Obrigado
@olegariomoliveira
@olegariomoliveira 4 месяца назад
Boa noite! Muito bom. Existe algum lugar com o código fonte?
@CanalSGP
@CanalSGP 4 месяца назад
Boa tarde, pode solicitar a planilha de exemplo no e-mail do site do canal, link na descrição do vídeo.
@anacleideflorencio4020
@anacleideflorencio4020 День назад
Tenho uma tabela com várias colunas, e qual melhor código vba para fazer um loop de todas as colunas?
@CanalSGP
@CanalSGP День назад
Boa noite, acredito que o Loop Until vai atender a necessidade, porque pode colocar ifs dentro e analisar mais de uma coluna ao mesmo tempo.
@OriGammer
@OriGammer 6 месяцев назад
Professor, no caso se eu tivesse que executar essa macro em diversas guias, existe alguma forma de nao ter que repetir diversas vezes o mesmo código? No caso da parte onde referencia a guia: With Planilha1. Se eu tivesse 20 planilhas teria que fazer With Planilha1, With Planilha2, With Planilha3... sendo que é o mesmo código dentro. Tem como fazer com varíavel esse nome da Planilha pra nao ter que ficar copiando e colando?
@CanalSGP
@CanalSGP 6 месяцев назад
Bom dia, teste colocar With Activesheet
@wascarsilveira1
@wascarsilveira1 2 месяца назад
Como faço para o vba buscar uma coluna linha em especifico na planilha através de um clique em um botão e depois ficar nessa mesma coluna acessando as células das linhas inferiores também somente através de um clique no botão, mas sem retornar para a primeira célula do primeiro clique, consegue me ajudar nessa? tem como passei o dia tentando, mas sem sucesso, parabéns pelo conteúdo você é fera.
@CanalSGP
@CanalSGP 2 месяца назад
Bom dia, infelizmente não fiz código com funções semelhantes até o momento.
@loteriastyllus
@loteriastyllus 5 месяцев назад
Fantástico! Estou necessitando de algo parecido, porém, preciso transferir da planilha1 para planilha2, excluindo esses dados da planilha1, com base no critério. EX: na coluna "D" tenho ENTRADA e SAÍDA, preciso enviar para planilha2 somente as Saídas. Procurei em sua PlayList algo parecido, porém, não encontrei, Caso tenha esse material, Gentileza, poderia enviar o Link? Desde já Grato....
@CanalSGP
@CanalSGP 5 месяцев назад
Boa tarde, já recebi esta dúvida algumas vezes, mas não consegui desenvolver algo viável ainda.
@TiagoVicente-b9r
@TiagoVicente-b9r 5 месяцев назад
@@CanalSGP Consegui esses 2 dois códigos abaixo, 1º com desenvolvido com "IA", não envia tudo de uma só vez, envia com uma certa quantidade, mas, funciona certinho. Já o 2º é seria perfeito, porém, está tendo um pequeno probleminha, nele consta o link do vídeo. 1º CÓDIGO -------------------------------------------------------------- Sub TransferirTodosDados() Dim ws1 As Worksheet Dim ws2 As Worksheet Dim rng1 As Range Dim rng2 As Range Dim cel As Range Dim crit As String ' Defina as planilhas Set ws1 = ThisWorkbook.Sheets("REGISTRO") Set ws2 = ThisWorkbook.Sheets("SAIDAS") ' Defina o critério (por exemplo, "Valor X") crit = "SAÍDA" ' Defina o intervalo de dados na coluna D da Planilha1 Set rng1 = ws1.Range("G1:G" & ws1.Cells(ws1.Rows.Count, "G").End(xlUp).Row) ' Percorra cada célula na coluna D da Planilha1 For Each cel In rng1 If cel.Value = crit Then ' Copie a linha inteira para a Planilha2 cel.EntireRow.Copy ws2.Cells(ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row + 1, 1) ' Exclua a linha da Planilha1 cel.EntireRow.Delete End If Next cel End Sub ----------------------------------------------------------------------------- 2º CÓDIGO Sub Transferir_Saidas() Dim LinhaPlan1, LinhaPlan2 As Long Dim ColunaPlan2 As Integer inicio: LinhaPlan1 = 2 While Planilha2.Range("A" & LinhaPlan1).Value "" If Planilha2.Range("G" & LinhaPlan1).Value = "SAÍDA" Then LinhaPlan2 = 2 While Planilha7.Range("A" & LinhaPlan2).Value "" LinhaPlan2 = LinhaPlan2 + 1 Wend For ColunaPlan2 = 1 To 51 Planilha7.Cells(LinhaPlan1, ColunaPlan2).Value = Planilha2.Cells(LinhaPlan1, ColunaPlan2).Value Next ColunaPlan2 Planilha2.Cells(LinhaPlan1, ColunaPlan2).EntireRow.Delete GoTo inicio End If Wend LinhaPlan1 = LinhaPlan1 + 1 'ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-RP3KSSqOTDQ.html End Sub
@CanalSGP
@CanalSGP 5 месяцев назад
Que bom que conseguiu.
@loteriastyllus
@loteriastyllus 5 месяцев назад
@@CanalSGP obrigado
@anacleideflorencio4020
@anacleideflorencio4020 5 месяцев назад
Olá, tenho uma quantidade de células com tamanho da fonte maior e quero salvar em outra linha com fonte menor no vba
@CanalSGP
@CanalSGP 5 месяцев назад
Boa tarde, teste gravar uma macro para capturar o código fazendo o processo de forma manual. Depois pode acrescentar o código a sua macro que salva o registro.
@victorhugo3718
@victorhugo3718 2 года назад
Muito bom! Estou com uma necessidade de numerar itens, se eu tiver 3 bola azul, numerada de 1 a 3 e comprar 10 bolas, 5 azuis e 5 brancas, q o laço enumere bola azul 4,5,6,7 e 8. Tenho muita dificuldade com vba, pois não entendo mas acho q consigo remanejar essa forma pra resolver esse problema. Se não der certo, preencho no excel e copio e colo.
@CanalSGP
@CanalSGP 2 года назад
Bom dia, obrigado, não tentei fazer algo assim ainda.
@renzomorishita1330
@renzomorishita1330 Год назад
Professor, o que significa o " . " (ponto) antes da expressão "Cells(Linha, 2).value" ?
@CanalSGP
@CanalSGP Год назад
Bom dia, o ponto é porque referenciei a guia da planilha com With, portanto não preciso repetir o nome da guia, mas dentro do with precisa colocar ponto para informar que se trata da guia do with.
@renzomorishita1330
@renzomorishita1330 Год назад
Obrigado, Professor!
@CanalSGP
@CanalSGP Год назад
De nada.
@TheWAGNER3994
@TheWAGNER3994 2 года назад
Boa noite... Tenho uma necessidade. Preciso criar uma estrutura para extrair uma lista semrepeticao e todas as possibilidades combinatória .a partir do conteúdo dentro de um espaço de ( 10 linhas e 15 colunas). na lista os numeros precisam estar em ordem crescente (da primeira até a décima quinta coluna). Vc pode me ajudar? Obrigado.
@CanalSGP
@CanalSGP 2 года назад
Boa noite, não fiz algo semelhante ainda, não sei dizer se é possível.
@PernambucoMeuPaisOficial
@PernambucoMeuPaisOficial 2 года назад
boa noite estou usando esse parâmetro : Base1.Range("v1048576").End(xlUp).Offset(1, 0).value2 = Result3.Range("c16:t16").value2 estou copiando de uma planilha para outra do intervalo c16:t16 para sheet base1 , só que só aparece o resultado c16 e não o intervalo ( na base1 estou copiando sempre na próxima célula em branco ), o que estou fazendo de errado ,? obrigado
@CanalSGP
@CanalSGP 2 года назад
Boa noite, acredito que vai precisar utilizar o comando copy, segue like de vídeo sobre esse tema. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-ynrEzQMmwbI.html
@PernambucoMeuPaisOficial
@PernambucoMeuPaisOficial 2 года назад
@@CanalSGP obrigado
@CanalSGP
@CanalSGP 2 года назад
De nada
@santosexplica
@santosexplica 2 года назад
Preciso copiar e colar dados de 5 em 5 minutos via vba para gerar um banco de dados, tem como?
@CanalSGP
@CanalSGP 2 года назад
Bom dia, não tentei algo assim ainda, mas vou estudar se tem como.
@TheFatalxD
@TheFatalxD 3 года назад
Olá SGP, primeiramente obrigado pela aula. Como faço para determinar até qual linha eu quero a validação, pois em meu relatório tenho linhas em brancas e linhas preenchidas, dessa forma irei utilizar a sua dica do Exit Do, mas não sei como determinar a linha. PS: Estou utilizando Msgbox quando houver data futura maior que a atual. Exemplo: Dim Linha As Double Linha = 1 With Plan1 Do Linha = Linha + 1 If .Cells(Linha, 38).Value > Date Then Erro = MsgBox("DATA DE ENTREGA MAIOR QUE A DATA ATUAL", vbOKOnly, "Erro") End If
@CanalSGP
@CanalSGP 3 года назад
Bom dia, pode colocar um número de linhas fixo para saída do loop, por exemplo: Do until Linha = 100 Vai fazer o laço até a linha 100 e parar.
@TheFatalxD
@TheFatalxD 3 года назад
@@CanalSGP obrigado deu certo, só fiquei na dúvida se eu quiser usar um If para data específica, eu colocaria assim ? Exemplo If .Cells (Linha,38).Value < “01/01/1900” then Erro = MsgBox …
@CanalSGP
@CanalSGP 3 года назад
Boa tarde, provavelmente vai precisar transformar a data comparativa em número.
@negociosonline40
@negociosonline40 3 года назад
Preciso carregar dados na planilha de um link de API fazer a análises destes dados e depois repetir o processo. Tentei fazer com loop mas o loop não deixa a consulta ser carregada. Já usei aplicatiion.wait para fazer essa pausa e carregar a consulta mas também não dá certo.
@CanalSGP
@CanalSGP 3 года назад
Bom dia, não fiz procedimento assim ainda.
@negociosonline40
@negociosonline40 3 года назад
@@CanalSGP estou quebrando cabeça, consigo fazer toda a lógica do loop, o problema é que o loop é tão rápido que trava o carregamento da consulta, e sem este carregamento não tem como fazer a análise dos dados. Se puder me dá uma luz ficarei eternamente grato com vc.
@CanalSGP
@CanalSGP 3 года назад
Boa noite, talvez o que possa fazer é transferir os dados para uma array no VBA e posteriormente fazer a consulta no array.
@renzoheli1929
@renzoheli1929 2 года назад
Boa noite, O meu está dando Loop sem Do, porém foi inserido o mesmo. O que pode ser?
@CanalSGP
@CanalSGP 2 года назад
Bom dia, pode ser um Loop de fato sem do ou um if que está sem o end if
@zzz-ks9lt
@zzz-ks9lt 2 года назад
ola, como faço isso em um userform??
@CanalSGP
@CanalSGP 2 года назад
Bom dia, depende e quais objetos vai utilizar na análise.
@eusou8431
@eusou8431 3 месяца назад
quero substituir no vba a expressão "Linha = 4" por "Linha = primeira celula vazia"
@CanalSGP
@CanalSGP 3 месяца назад
Bom dia, segue link de vídeo sobre localizar próxima linha vazia. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-7xYugUHnf78.html
@edsonrodrigues4314
@edsonrodrigues4314 2 года назад
Ops queria ver vc faz codigo pra mim numeros coicidentes pra lotofacil seria loop until
@CanalSGP
@CanalSGP 2 года назад
Boa tarde, com encomendas não trabalho mais, estou trabalhando para uma empresa agora.
@PernambucoMeuPaisOficial
@PernambucoMeuPaisOficial 2 года назад
Loop
@CanalSGP
@CanalSGP 2 года назад
Obrigado
@pedropaulocorrieri6056
@pedropaulocorrieri6056 2 года назад
Olá, Boa noite, muito útil essa aula, infelizmente não sei da linguagem VBA, gostaria de te pedir uma dica ou um norte Tenho que fazer um relatório da minha equipe e mostrar as diferenças apontadas de Dia x Horas Trabalhadas, exemplo Tabela com Dados já carregados: DATA USER HORAS NO DIA 15/09/2022 | ppcorrieri | 8 16/09/2022 | ppcorrieri | 6 Tenho que trazer a Data e o Resultado para outra tabela a onde as Horas sejam menores do que 8 e dar a resposta como: OK (se Horas = 8) ou: INCONSISTENTE (se Horas < 8) resultado esperado: DATA RESULTADO 15/09/2022 | OK 16/09/2022 | INCONSISTENTE A lógica em si eu sei, porém não sei aplicar isso no Excel, tem alguma dica?
@CanalSGP
@CanalSGP 2 года назад
Bom dia, não fiz algo semelhante ainda, com fórmulas talvez com a função se, mas como se trata de hora provavelmente vai precisar colocar mais uma coluna e transformara a data em hora.
Далее
#15 - macros and Excel VBA - Do While - Loop
19:34
Просмотров 89 тыс.
Como Fazer Loop VBA no Excel - While VBA
26:32
Просмотров 8 тыс.
Тестирую гаджет для роллов! 🙈
00:42
#kikakim
00:17
Просмотров 7 млн
# 16 - Course macros and Excel VBA - Do While / Loop
16:23
15 Macros que você deveria conhecer no Excel
46:13
Просмотров 83 тыс.