obrigado por ajudar compartilhando seu conhecimento.
@CanalSGP2 жыл бұрын
De nada.
@ricardofilho98308 ай бұрын
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
@CanalSGP8 ай бұрын
Bom dia, obrigado, acredito que a estrutura de análise vai ser semelhante.
@ricardofilho98308 ай бұрын
@@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ó.
@CanalSGP8 ай бұрын
Boa tarde, se deseja a coluna 2 altere onde tem 11 para 2
@olegariomoliveira6 ай бұрын
Boa noite! Muito bom. Existe algum lugar com o código fonte?
@CanalSGP5 ай бұрын
Boa tarde, pode solicitar a planilha de exemplo no e-mail do site do canal, link na descrição do vídeo.
@anacleideflorencio4020Ай бұрын
Tenho uma tabela com várias colunas, e qual melhor código vba para fazer um loop de todas as colunas?
@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.
@kelvinMovies27 күн бұрын
Boa noite. Como vai. Estimo que esteja bem. Professor, poderia fazer a gentileza de me ajudar com uma situação? Preciso fazer um loop para selecionar apenas as células que sejam diferente de vazio. Para selecionar uma faixa eu até sei, mas essa situação em específico eu estou com dificulade. Desde já muito obrigado
@CanalSGP26 күн бұрын
Bom dia ,mas tem uma coluna que não tem células vazias para se basear o loop, para ter a quantidade de linhas a percorrer.
@kelvinMovies26 күн бұрын
@CanalSGP eu quero pegar só as informações da coluna c. Ela começa na c8 e desce.
@CanalSGP26 күн бұрын
Boa noite, talvez definir um limite manualmente para o loop.
@kelvinMovies26 күн бұрын
@CanalSGP eu estava pensando se é possível fazer com essa seleção igual faz com a soma. Na soma, se a célula for diferente de vazio ele soma certo, será que tem alguma de armazenar as células selecionadas se elas forem diferentes de vazio?
@CanalSGP25 күн бұрын
Bom dia, talvez se souber a área que vai ser selecionada, no vba tem mas mesmas funções do Excel normal.
@loteriastyllus7 ай бұрын
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....
@CanalSGP7 ай бұрын
Boa tarde, já recebi esta dúvida algumas vezes, mas não consegui desenvolver algo viável ainda.
@TiagoVicente-b9r7 ай бұрын
@@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 'kzbin.info/www/bejne/iIGWfIaJprSHerM End Sub
@CanalSGP7 ай бұрын
Que bom que conseguiu.
@loteriastyllus7 ай бұрын
@@CanalSGP obrigado
@victorhugo37182 жыл бұрын
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.
@CanalSGP2 жыл бұрын
Bom dia, obrigado, não tentei fazer algo assim ainda.
@wascarsilveira14 ай бұрын
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.
@CanalSGP4 ай бұрын
Bom dia, infelizmente não fiz código com funções semelhantes até o momento.
@OriGammer7 ай бұрын
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?
@CanalSGP7 ай бұрын
Bom dia, teste colocar With Activesheet
@anacleideflorencio4020Ай бұрын
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.
@CanalSGPАй бұрын
Bom dia, pode alterar a referência a coluna e analisar outras colunas também. .Cells(Linha, 4).Value
@anacleideflorencio4020Ай бұрын
Faço dessa forma colocando tbm for next, só que demorar finalizar
@anacleideflorencio4020Ай бұрын
Qual a melhor forma 1 so FOR NEXT para todos, ou 1 FOR NEXT para cada calcula?
@CanalSGPАй бұрын
Boa tarde, depende da análise que vai fazer, mas se conseguir incluir tudo em um único laço é melhor, vai ficar mais rápido.
@anacleideflorencio4020Ай бұрын
@@CanalSGP deu certo, a questão das células protegidas, muito obrigado.
@anacleideflorencio40207 ай бұрын
Olá, tenho uma quantidade de células com tamanho da fonte maior e quero salvar em outra linha com fonte menor no vba
@CanalSGP7 ай бұрын
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.
@renzomorishita1330 Жыл бұрын
Professor, o que significa o " . " (ponto) antes da expressão "Cells(Linha, 2).value" ?
@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 Жыл бұрын
Obrigado, Professor!
@CanalSGP Жыл бұрын
De nada.
@TheWAGNER39942 жыл бұрын
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.
@CanalSGP2 жыл бұрын
Boa noite, não fiz algo semelhante ainda, não sei dizer se é possível.
@cicerolobo758310 ай бұрын
Excelente...
@CanalSGP10 ай бұрын
Obrigado
@TheFatalxD3 жыл бұрын
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
@CanalSGP3 жыл бұрын
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.
@TheFatalxD3 жыл бұрын
@@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 …
@CanalSGP3 жыл бұрын
Boa tarde, provavelmente vai precisar transformar a data comparativa em número.
@PernambucoMeuPaisOficial3 жыл бұрын
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
@CanalSGP3 жыл бұрын
Boa noite, acredito que vai precisar utilizar o comando copy, segue like de vídeo sobre esse tema. kzbin.info/www/bejne/r5_Vdq2HgtKqmKs
@PernambucoMeuPaisOficial3 жыл бұрын
@@CanalSGP obrigado
@CanalSGP3 жыл бұрын
De nada
@negociosonline403 жыл бұрын
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.
@CanalSGP3 жыл бұрын
Bom dia, não fiz procedimento assim ainda.
@negociosonline403 жыл бұрын
@@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.
@CanalSGP3 жыл бұрын
Boa noite, talvez o que possa fazer é transferir os dados para uma array no VBA e posteriormente fazer a consulta no array.
@santosexplica2 жыл бұрын
Preciso copiar e colar dados de 5 em 5 minutos via vba para gerar um banco de dados, tem como?
@CanalSGP2 жыл бұрын
Bom dia, não tentei algo assim ainda, mas vou estudar se tem como.
@renzoheli19292 жыл бұрын
Boa noite, O meu está dando Loop sem Do, porém foi inserido o mesmo. O que pode ser?
@CanalSGP2 жыл бұрын
Bom dia, pode ser um Loop de fato sem do ou um if que está sem o end if
@SHOTBOT-ks9lt2 жыл бұрын
ola, como faço isso em um userform??
@CanalSGP2 жыл бұрын
Bom dia, depende e quais objetos vai utilizar na análise.
@edsonrodrigues43142 жыл бұрын
Ops queria ver vc faz codigo pra mim numeros coicidentes pra lotofacil seria loop until
@CanalSGP2 жыл бұрын
Boa tarde, com encomendas não trabalho mais, estou trabalhando para uma empresa agora.
@eusou84314 ай бұрын
quero substituir no vba a expressão "Linha = 4" por "Linha = primeira celula vazia"
@CanalSGP4 ай бұрын
Bom dia, segue link de vídeo sobre localizar próxima linha vazia. kzbin.info/www/bejne/bam8ppqLfdOZbZo
@PernambucoMeuPaisOficial3 жыл бұрын
Loop
@CanalSGP3 жыл бұрын
Obrigado
@pedropaulocorrieri60562 жыл бұрын
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?
@CanalSGP2 жыл бұрын
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.