Notifications
Clear all

Macro copiar com critérios

5 Posts
3 Usuários
0 Reactions
977 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal boa tarde,

Estou com dificuldades em uma macro. Já procurei pelo forum alguns exemplos semelhantes mais não consegui resolver.
Tenho uma planilha com duas abas "pendências" e "imprimir"
na aba "pendencias" tem os meus dados e nesta também esta a condição na coluna B que é o valor "P".

Ou seja, caso a linha na coluna B tenha o valor "P" copiar essa linha da coluna A até G para
a aba imprimir a partir da linha 6 coluna A.

Seria importante que a linha seja colada na aba "imprimir" com a mesma formatação da aba "pendencias"
e também que a macro verifique se a linha esta vazia mesmo para colar além dessa macro
ser inicializada toda vez que se mudar valores nesta coluna B.

Obrigado

 
Postado : 28/01/2014 8:10 am
(@bilokas)
Posts: 168
Reputable Member
 

na aba "pendencias" tem os meus dados e nesta também esta a condição na coluna B que é o valor "P".

Ou seja, caso a linha na coluna B tenha o valor "P" copiar essa linha da coluna A até G para
a aba imprimir a partir da linha 6 coluna A.

Nossa meu cérebro deu nó. Heheheh, tem como explicar melhor.

 
Postado : 28/01/2014 8:35 am
(@gtsalikis)
Posts: 2373
Noble Member
 

deve ser algo assim:

Sub Imprimir_GT()

'Etapa 1 - definir quais informações serão copiadas segundo as prioridades escolhidas
    
    Dim Verifica_1 As Integer
        Verifica_1 = MsgBox("Para imprimir, você não deve deixar linhas filtradas, ou pode incorrer em erro. Você lembrou de retirar o filtro?", vbYesNo, "Atenção")
            'If_1
            If Verifica_1 = vbYes Then
    
    Dim Verifica_2 As Integer
        Verifica_2 = MsgBox("Você lembrou de marcar acima quais linhas serão impressas?", vbYesNo, "Atenção")
            'If_2
            If Verifica_2 = vbYes Then
            
'Etapa 2 - copiar as informações para a planilha IMPRIMIR
     
Application.ScreenUpdating = False

    Sheets("imprimir").Select
        Range("A6:G1048576").Clear

    Sheets("pendências").Select
    i = 6
    Do While Not IsEmpty(Cells(i, "A"))
        If Cells(i, "B").Value = "P" Then
            Sheets("pendências").Range(Cells(i, "A"), Cells(i, "G")).Copy Sheets("imprimir").Range(Cells(j, "A"), Cells(j, "G"))
            j = j + 1
        End If
        i = i + 1
    Loop

Application.ScreenUpdating = True

End Sub
 
Postado : 28/01/2014 10:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Obrigado Gtsalikis!

 
Postado : 28/01/2014 6:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

 
Postado : 28/01/2014 6:39 pm