VBA – Criando uma cópia somente dados de uma planilha no Excel

Mais uma que saiu do nosso fórum.

O pessoal precisou de uma macro no VBA para criar uma cópia dos dados da planilha (Worksheet) em uma nova, mas somente os dados, sem fórmulas. Como alguns devem saber, isso é simples usando o recurso Colar Especial->Valores. Mas como o mundo é exigente, precisamos fazer isso a “rodo”, e é nesse caso que as macros ajudam.

A macro abaixo faz uma cópia da planilha atual, copiando somente seus dados:

Sub CopiaSomenteConteudo()
    Dim NewSheet As Worksheet, CurrentSheet As Worksheet
    'pega a planilha atual
    Set CurrentSheet = ActiveSheet
    'cria uma nova planilha
    Set NewSheet = ThisWorkbook.Worksheets.Add
    NewSheet.Name = CurrentSheet.Name & "2"
    'copia todas as células da planilha ativa
    CurrentSheet.Cells.Copy
    'cola só os valores na nova planilha
    NewSheet.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    'zera os objetos
    Set NewSheet = Nothing
    Set CurrenSheet = Nothing
End Sub

Simples, rápido, eficaz. Isso é Excel + VBA.

Bom proveito!

Comentários

comentários

4 comentários em “VBA – Criando uma cópia somente dados de uma planilha no Excel”

  1. Grande Blog, tem me ajudado muito quando fico no aperto xD. estou com um problema em relação a criação de copia de planilhas…o que eu quero é quase isso que ta feito ai, porém eu preciso que algumas formatações também sejam copiadas. Tipo, eu tenho uma base de dados e crio uma lista de materiais a partir de valores desse BD. Ao tentar copiar com o comando mPlan.Copy Before:=NovoArquivoXLS.Sheets(1) ele copia a planilha igualzinha, porém os valores vão como fórmula e ai da mer$#* por ter referência a valores do BD. quando fiz usado essa Sub Rotina CopiaSomenteConteudo() os valores foram perfeitamente porém as bordas, cores, negritos,centralizações e afins não foram….tem como eu fazer isso, passar os valores e esses detalhes??

    desde já agradeço!

  2. Ola pessoal. Tudo bem?
    Sou novo no blog, tenho muitas duvidas de VBA. Ja tirei algumas duvidas por aqui.
    Inclusive estava procurando o codigo acima quando encontrei este blog.
    Testei o codigo e funcionou. Porem só não estou conseguindo resolver um detalhe. Tenho uma planilha que tens as celulas A1:L4 mesclada e tem uma figura de um logotipo nela. Com o codigo acima, a imagem do logotipo não vai para a nova planilha. como eu posso fazer para que eu consiga isso

Os comentários estão fechados.