none
Macro copiar e colar tabela RRS feed

  • Pergunta

  • Fiz uma tabela no excel e gostaria de criar uma macro para copiar e colar quantas vezes eu quiser, mas quando fiz, ela cola acima da primeira que dupliquei, como faço para ela pular as linhas da primeira que dupliquei?

    Sub Macro8()
    '
    ' Macro8 Macro
    ' copiar e colar
    '

    '
        Range("A5:H21").Select
        Selection.Copy
        Range("A23").Select
        ActiveSheet.Paste
    End Sub

    sexta-feira, 7 de abril de 2017 19:12

Respostas

  • Sub CopyPaste()
        Dim rgSource As Range
        Dim ws As Worksheet
        Dim rgDest As Range
        
        Set ws = ActiveSheet
        Set rgSource = ws.Range("A5:H21")
        
        Set rgDest = ws.Range("A23")
        If rgDest.Value2 <> "" Then
            Set rgDest = ws.Cells(ws.Rows.Count, rgDest.Column).End(xlUp).Offset(1)
        End If
        
        rgSource.Copy
        rgDest.PasteSpecial xlPasteValues
    End Sub
    


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    sexta-feira, 7 de abril de 2017 23:28
    Moderador
  • Tente algo como:

    Sub CopyPaste()
        Dim rgSource As Range
        Dim ws As Worksheet
        Dim rgDest As Range
        
        Set ws = ActiveSheet
        Set rgSource = ws.Range("A5:H21")
        
        Set rgDest = ws.Range("A23")
        If rgDest.Value2 <> "" Then
            Set rgDest = ws.Cells(ws.Rows.Count, rgDest.Column).End(xlUp).Offset(1)
        End If
        
        rgSource.Copy
        rgDest.PasteSpecial xlPasteValues
        
        ActiveSheet.PageSetup.PrintArea = Selection.Address(0, 0)
    End Sub
    


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    quinta-feira, 13 de abril de 2017 09:47
    Moderador

Todas as Respostas

  • Sub CopyPaste()
        Dim rgSource As Range
        Dim ws As Worksheet
        Dim rgDest As Range
        
        Set ws = ActiveSheet
        Set rgSource = ws.Range("A5:H21")
        
        Set rgDest = ws.Range("A23")
        If rgDest.Value2 <> "" Then
            Set rgDest = ws.Cells(ws.Rows.Count, rgDest.Column).End(xlUp).Offset(1)
        End If
        
        rgSource.Copy
        rgDest.PasteSpecial xlPasteValues
    End Sub
    


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    sexta-feira, 7 de abril de 2017 23:28
    Moderador
  • obrigada, deu certo

    Criei um botão de impressão ao lado deste formulário, quando aciono a macro de copiar e colar, ela duplica também  o botão de impressão, mas como faço para toda vez que duplicar o botão de impressão (macro) ele selecionar o novo formulário para imprimir? tem algum comando de impressão, que quando eu duplico ele altera a área de impressão "d21:k38"


        ActiveSheet.PageSetup.PrintArea = "d21:k38"
        ActiveWindow.SelectedSheets.PrintOut Copies:=2
     
    End Sub

    quarta-feira, 12 de abril de 2017 16:51
  • "quando aciono a macro de copiar e colar, ela duplica também  o botão de impressão"

    Você está usando mesmo o código que sugeri? Veja que colo especial somente valores, então não é para o botão ser duplicado. Como está seu código?

    ---

    Sobre sua dúvida, você quer alterar a região da planilha que quer imprimir, é isso?


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    quarta-feira, 12 de abril de 2017 17:46
    Moderador
  • Para copiar e colar a área sem sobrepor usei este código

    Sim, quero alterar a área da impressão toda vez que duplico o formulário

    Sub Macro1()
    ' Macro1 Macro
        Range("A21:H38").Select
        Selection.Copy
        Range("A200").Select
        Selection.End(xlUp).Select
        Selection.Offset(3, 0).Select
        ActiveSheet.Paste
        Range("H200").Select
        Selection.End(xlUp).Select
    End Sub


    MARCIA C BARBOSA

    quarta-feira, 12 de abril de 2017 18:07
  • Tente algo como:

    Sub CopyPaste()
        Dim rgSource As Range
        Dim ws As Worksheet
        Dim rgDest As Range
        
        Set ws = ActiveSheet
        Set rgSource = ws.Range("A5:H21")
        
        Set rgDest = ws.Range("A23")
        If rgDest.Value2 <> "" Then
            Set rgDest = ws.Cells(ws.Rows.Count, rgDest.Column).End(xlUp).Offset(1)
        End If
        
        rgSource.Copy
        rgDest.PasteSpecial xlPasteValues
        
        ActiveSheet.PageSetup.PrintArea = Selection.Address(0, 0)
    End Sub
    


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    quinta-feira, 13 de abril de 2017 09:47
    Moderador
  • Na verdade a macro de copiar e colar esta ok, eu preciso somente resolver a que imprimi

    pq quando dou o comando ela imprimi a d21:k38 e não a que duplicou

    ActiveSheet.PageSetup.PrintArea = "d21:k38"

    ActiveWindow.SelectedSheets.PrintOut Copies:=2

    Coloquei esta

    ActiveSheet.PageSetup.PrintArea = Selection.Address(0, 0)
    ActiveWindow.SelectedSheets.PrintOut Copies:=2

    Deu certo, só preciso selecionar antes de apertar o print.

    Muito obrigada


    MARCIA C BARBOSA

    quinta-feira, 13 de abril de 2017 12:31