Ir ao conteúdo

Posts recomendados

Postado

Boa noite estou com problema,com esse código,porque toda vez que ele cola no outra ele cola em cima de dados que já estavam na planilha,vocês sabem algum código,que eu possa usar pra copiar e colar apenas o que ta na planilha,na coluna status como "pago"?

 

 

Dim linhaatual As Long
Dim Ultimalinha As Long
Dim W As Worksheet
Dim linha As Long


Set W = Sheets("Contas a Receber")

Ultimalinha = W.UsedRange.Rows.Count

With W
.Activate
For linhaatual = 1 To Ultimalinha
linha = Range("B" & Rows.Count).End(xlUp).Row + 1
If Cells(linhaatual, "I") = "pago" Then

Sheets("Historico de Contas recebidas").Cells(linha, 2) = Format(.Cells(linhaatual, 2), "DD/MM/YYYY")
Sheets("Historico de Contas recebidas").Cells(linha, 3) = .Cells(linhaatual, 3)
Sheets("Historico de Contas recebidas").Cells(linha, 4) = .Cells(linhaatual, 4)
Sheets("Historico de Contas recebidas").Cells(linha, 5) = .Cells(linhaatual, 5)
Sheets("Historico de Contas recebidas").Cells(linha, 6) = Format(.Cells(linhaatual, 6), "currency")


.Rows(linhaatual).Delete

Else

End If
Next linhaatual

End With

 

code <>

Postado

@Luana Jennifer Boa noite!

Veja se entendi corretamente sua dúvida, ao copiar as informações de uma guia para a outra, alguns dados são perdidos correto? 

 

Veja se esse código te ajuda e atende o que precisa

Sub teste()
    Dim linhaatual As Long
    Dim Ultimalinha As Long
    Dim W As Worksheet
    
    ' vUltimaLinhaHistorico = Guarda a ultima linha da Sheet histórico.
    Dim vUltimaLinhaHistorico As Long
    
    Set W = Sheets("Contas a Receber")
    
    Ultimalinha = W.UsedRange.Rows.Count
    vUltimaLinhaHistorico = Sheets("Historico de Contas recebidas").Range("B" & Rows.Count).End(xlUp).Row + 1
    
    With W
        .Activate
        ' Como é removido a linha no final do copia/cola, a estrutura FOR deve ser da ultima linha para a primeira.
        For linhaatual = Ultimalinha To 1 Step -1
            If .Cells(linhaatual, "I") = "pago" Then
                Sheets("Historico de Contas recebidas").Cells(vUltimaLinhaHistorico, 2) = Format(.Cells(linhaatual, 2), "DD/MM/YYYY")
                Sheets("Historico de Contas recebidas").Cells(vUltimaLinhaHistorico, 3) = .Cells(linhaatual, 3)
                Sheets("Historico de Contas recebidas").Cells(vUltimaLinhaHistorico, 4) = .Cells(linhaatual, 4)
                Sheets("Historico de Contas recebidas").Cells(vUltimaLinhaHistorico, 5) = .Cells(linhaatual, 5)
                Sheets("Historico de Contas recebidas").Cells(vUltimaLinhaHistorico, 6) = Format(.Cells(linhaatual, 6), "currency")
                
                ' Adiciona +1 no contador.
                vUltimaLinhaHistorico = vUltimaLinhaHistorico + 1
                
                .Rows(linhaatual).Delete
            Else
            End If
        Next linhaatual
        
    End With
End Sub

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!