none
Copiar linha de uma planilha que contém o mesmo código de outra planilha com n linhas do mesmo código RRS feed

  • Pergunta

  • Bom dia a todos!

    Meu problema é o seguinte:

    Na minha Planilha Geral possuo uma linha com o código, data e valor (que seria o cabeçalho), e na Planilha Movimento, possuo tudo o que faz parte de cada linha (detalhe).

    Quero criar uma 3a planilha contendo o cabeçalho e em seguida o detalhe.

    Exemplo:

    Planilha Geral

    Código  Data   Valor

    1          01/01  100,00

    2          03/01  854,12

    Planilha Movimento

    Código Valor     Descrição

    1          50,50    A

    1          49,50    B

    2          555,00  S

    2          125,00  S

    2          70,00    X

    2          104,12  Z

    Planilha Completa

    1          01/01  100,00 (cabeçalho)

    1          50,50    A        (detalhe)

    1          49,50    B        (detalhe)

    2          03/01  854,12  (cabeçalho)

    2          555,00  S         (detalhe)

    2          125,00  S         (detalhe)

    2          70,00    X         (detalhe)

    2          104,12  Z         (detalhe)

    Não tenho ideia de como fazer isso de uma forma rápida... Hoje estou indo no Ctrl C,  Ctrl V. Mas ninguém merece! hehehe

    Alguém pode me dar uma luz por favor?!

    Obrigada!

    segunda-feira, 9 de setembro de 2013 12:45

Respostas

  • Bom dia,

    Para criar uma terceira planilha contendo os dados de outras duas não é muito complicado.

    De uma olhada nesse link, creio que possa te ajudar: http://techinfo.laurenceholbrook.com/ProgrammaticallyCutCopyPaste.html

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    Msdn Community Support

    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta mrmooser quarta-feira, 11 de setembro de 2013 15:49
    terça-feira, 10 de setembro de 2013 12:31

Todas as Respostas

  • Bom dia,

    Para criar uma terceira planilha contendo os dados de outras duas não é muito complicado.

    De uma olhada nesse link, creio que possa te ajudar: http://techinfo.laurenceholbrook.com/ProgrammaticallyCutCopyPaste.html

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    Msdn Community Support

    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta mrmooser quarta-feira, 11 de setembro de 2013 15:49
    terça-feira, 10 de setembro de 2013 12:31
  • Obrigada Giovani!

    Vou dar uma estudada no link!

    quarta-feira, 11 de setembro de 2013 15:49
  • Sub fncMain()
        Dim wksCompleta As Worksheet
        Dim wksGeral As Worksheet
        Dim wksMovimento As Worksheet
        Dim lngLastMovimento As Long
        Dim lngMovimento As Long
        Dim lngCompleta As Long
        Dim lngCódigo As Long
        Dim dteData As Date
        Dim dblValor As Double
        Dim strDescrição As String
        Dim lngGeral As Long
        
        With ThisWorkbook
            Set wksCompleta = .Worksheets("Completa")
            Set wksGeral = .Worksheets("Geral")
            Set wksMovimento = .Worksheets("Movimento")
        End With
        
        'Limpar planilha Completa'
        With wksCompleta
            .Rows(2).Resize(.Rows.Count - 2 + 1).ClearContents
        End With
        
        lngCompleta = 2
        lngLastMovimento = wksMovimento.Cells(wksMovimento.Rows.Count, "A").End(xlUp).Row
        For lngMovimento = 2 To lngLastMovimento
            'Obter informações da planilha Geral'
            lngGeral = fncMatch(wksMovimento.Cells(lngMovimento, "A"), wksGeral.Columns("A"))
            dteData = wksGeral.Cells(lngGeral, "B")
            
            'Obter informações da planilha Movimento'
            lngCódigo = wksMovimento.Cells(lngMovimento, "A")
            dblValor = wksMovimento.Cells(lngMovimento, "B")
            strDescrição = wksMovimento.Cells(lngMovimento, "C")
            
            'Povoar planilha Completa'
            wksCompleta.Cells(lngCompleta, "A") = lngCódigo
            wksCompleta.Cells(lngCompleta, "B") = dteData
            wksCompleta.Cells(lngCompleta, "C") = dblValor
            wksCompleta.Cells(lngCompleta, "D") = strDescrição
            lngCompleta = lngCompleta + 1
        Next lngMovimento
    End Sub
    
    Function fncMatch(ByVal varTermo As Variant, ByVal varVetor As Variant) As Long
        On Error Resume Next
        fncMatch = WorksheetFunction.Match(CStr(varTermo), varVetor, 0)
        If fncMatch = 0 Then fncMatch = WorksheetFunction.Match(varTermo + 0, varVetor, 0)
    End Function


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 11 de setembro de 2013 23:48
    Moderador