Foto de Henrique F.
Henrique há 2 anos
Enviada pelo
Site

Macro - copiar e colar (do while)

Boa tarde!

Me encontro em dúvida na seguinte situação:

Tenho um arquivo que possui uma base de sugestão de pedidos, essa sugestão vem através de uma formula, ou seja a coluna inteira (AO) possui fórmulas, celula a celula.

Preciso de uma macro onde eu consiga identificar celula por celula por exemplo AO1, AO2, AO3 quais possuem valores, se estiver "" pular para proxima, se identificar algum valor copiar e jogar para outro local da planilha e assim por diante até a ultima celula que não contenha formula alguma.

 

Alguem tem alguma sugestão?

Comecei a pensar em algo como abaixo porem ainda não consegui fazer o código funcional com a proposta inicial.

Sub movimentação()

    Set Rng = Range("AO12")
    
    Do While Rng.Value = ""
        
        Set Rng = Rng.Offset(1, 0)
        
        Do While Rng.Value <> ""
            Rng.Offset(0, 2).Value = Worksheets("Preenchimento").Range("C" & linha)
            
            Set Rng = Rng.Offset(1, 0)
            
            Loop
    Loop

End Sub

Excel VBA em Excel
2 respostas
Professor André L.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar André Luis

Olá Henrique:

Tu podes utilizar o seguinte programa:

Sub procura()

 For i = 1 To 13
    If Cells(i, 41) <> "" Then Cells(i, 42) = Cells(i, 41)
 Next

End Sub

Ele fai rastriar 13 linhas da coluna AO (equivalente à coluna 41). Se o valor da célula da coluna não vor vazio, ele reproduz na coluna AP.

Esta é apenas a lógica, é só criar uma macro no EXCEL, preencher algumas células da coluna e rodar a macro.

Qualque dúvida é só perguntar.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Tutoria com IA
Converse com a Minerva IA e aprenda, tire dúvidas e resolva exercícios
Professor Scavy K.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar Scavy

Olá, tudo bem?

Primeiro você precisa encontrar o total de linhas preechidas, algo do tipo:

lastLIne = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, "AO").End(xlUp).Row,"AO").End(xlUp).Row

Nesse caso debaixo para cima, isso depende de como estão modelados os dados na planilha, seria interessante postar a mesma.

Ai é só usar IF e o Offset combinado com While.

Qualquer coisa estou por aqui.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Prefere professores para aulas particulares ou resolução de atividades?
Aulas particulares
Encontre um professor para combinar e agendar aulas particulares Buscar professor
Tarefas
Envie sua atividade, anexe os arquivos e receba ofertas dos professores Enviar tarefa