none
Copiar linhas dependendo de uma coluna RRS feed

  • Pergunta

  • Olá!

    Preciso de uma ajuda com VBA, já que sou iniciante com esse recurso.

    Minha ideia para melhoria de uma planilha envolve programar a planilha para, sempre que acionado um botão (ou atalho), que verifique a coluna D e sempre que uma linha apresentar "cancelado" ou "C" na aba Status Doc que copie a linha inteira e cole na aba Doc Cancelados, sempre incluindo na próxima linha que estiver vazia (como se fosse para criar uma lista).

    

    sexta-feira, 30 de novembro de 2018 17:17

Respostas

  • voce tem que dar um loop em cada aba e selecionar para a fazer a busca. tb te recomendo a fazer isso com filtro avançado veja o video : https://www.youtube.com/watch?v=jllCOUWqWLo

    por favor marque como resposta e vote pelos meus postes agradeço a ajuda .

    sub busca()


    For Each Sheet In ThisWorkbook.Sheets
    nomedaaba=Sheet.Name

    numerodelinhas = sheets(nomedaaba).Range("d1").End(xlDown).Row
    x = 1
    For i = 1 To numerodelinhas
        If sheets(nomedaaba).Cells(i, 4) = "cancelado" Or sheets(nomedaaba).Cells(i, 4) = "C" Then
        sheets(nomedaaba).Rows(i).Copy
        Sheets("doc Cancelados").Cells(x, 1).PasteSpecial
        x = x + 1
        End If
    Next i

    Next


    segunda-feira, 3 de dezembro de 2018 15:38
  • Sub teste()
    numerodelinhas = Range("d1").End(xlDown).Row
    x = 1
    For i = 1 To numerodelinhas
        If Cells(i, 4) = "cancelado" Or Cells(i, 4) = "C" Then
        Rows(i).Copy
        Sheets("doc Cancelados").Cells(x, 1).PasteSpecial
        x = x + 1
        End If
    Next i

    bote essa macro atribuída ao botão na pagina em que os itens cancelados aperecem.

    por favor não esquece de votar e marcar como respondido me ajuda bastante :)

    • Sugerido como Resposta João Henrique Cavalcanti sexta-feira, 30 de novembro de 2018 17:53
    • Marcado como Resposta patyTJ quarta-feira, 5 de dezembro de 2018 10:51
    sexta-feira, 30 de novembro de 2018 17:44

Todas as Respostas

  • Sub teste()
    numerodelinhas = Range("d1").End(xlDown).Row
    x = 1
    For i = 1 To numerodelinhas
        If Cells(i, 4) = "cancelado" Or Cells(i, 4) = "C" Then
        Rows(i).Copy
        Sheets("doc Cancelados").Cells(x, 1).PasteSpecial
        x = x + 1
        End If
    Next i

    bote essa macro atribuída ao botão na pagina em que os itens cancelados aperecem.

    por favor não esquece de votar e marcar como respondido me ajuda bastante :)

    • Sugerido como Resposta João Henrique Cavalcanti sexta-feira, 30 de novembro de 2018 17:53
    • Marcado como Resposta patyTJ quarta-feira, 5 de dezembro de 2018 10:51
    sexta-feira, 30 de novembro de 2018 17:44
  • Olá João Henrique Cavalcanti

    <abbr class="affil"></abbr>

    oão Henrique!

    Eu testei na minha planilha teste e funcionou, porém quando transferi para a planilha que eu realmente preciso da macro (plan agenda), não funcionou e também não aparece nenhuma mensagem de erro, a ideia é que ela possa funcionar em todas as abas da plan agenda e jogar as infos para a aba "docs cancelados".

    Outra coisa que preciso de ajuda, seria possível programar, para que quando ele realize essa ação de copiar, que ele inclua a data que essa ação foi realizada (para manter esse histórico registrado)? 

    Obrigada!


    • Editado patyTJ segunda-feira, 3 de dezembro de 2018 14:25
    segunda-feira, 3 de dezembro de 2018 13:46
  • voce tem que dar um loop em cada aba e selecionar para a fazer a busca. tb te recomendo a fazer isso com filtro avançado veja o video : https://www.youtube.com/watch?v=jllCOUWqWLo

    por favor marque como resposta e vote pelos meus postes agradeço a ajuda .

    sub busca()


    For Each Sheet In ThisWorkbook.Sheets
    nomedaaba=Sheet.Name

    numerodelinhas = sheets(nomedaaba).Range("d1").End(xlDown).Row
    x = 1
    For i = 1 To numerodelinhas
        If sheets(nomedaaba).Cells(i, 4) = "cancelado" Or sheets(nomedaaba).Cells(i, 4) = "C" Then
        sheets(nomedaaba).Rows(i).Copy
        Sheets("doc Cancelados").Cells(x, 1).PasteSpecial
        x = x + 1
        End If
    Next i

    Next


    segunda-feira, 3 de dezembro de 2018 15:38