Vídeo recomendado
https://youtu.be/diWPPPhW-9E

copiar de uma planilha para outra

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
lrfigueiredo
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Seg Jan 31, 2011 5:40 pm

copiar de uma planilha para outra

Mensagem por lrfigueiredo »

Preciso copiar uma planilha de nome TAG que tem tamanhos de celulas padrões e cores tipo um cartão modelo, a copia deve ser em outra planilha mas deve manter os tamanhos de células e os padroes inalterados. Tentei o seguinte codigo mas altera o tamanho das celulas, na nova planilha.

Sheets.Add ' inseri uma nova planilha
nome = InputBox("Informar nome da nova planilha") 'solicita o nome da nova planilha
ActiveSheet.Name = nome ' renomeia a planilha
Sheets("TAG").Select
Columns("A:J").Select ' Aqui ele vai selecionar as colunas A e B até a ultima Linha do Excel
Selection.Copy ' Copia os Valores selecionados
Sheets(nome).Select ' Chama a "Plan2"
With ActiveSheet.Range("A1")
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlFormats
End With
Application.CutCopyMode = False ' Desativa a seleção.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: copiar de uma planilha para outra

Mensagem por Mauro Coutinho »

figueiredo, nos teste que fiz a sua rotina funcionou sem problemas criando uma nova aba e copiando mantendo as formatações.
Veja se a rotina abaixo funciona como pretende, qq coisa anexe um exemplo reduzido de seu modelo.

Código: Selecionar todos

Sub NovaPlanilhaInputbox()
Dim wshNovaPlan As Worksheet
Dim wsTag As Worksheet
Dim i As Integer

'Define a Planilha TAG
Set wsTag = Sheets("TAG")
'Congela a tela
Application.ScreenUpdating = False

'Nome da nova Sheet
nome = InputBox("Informar nome da nova planilha") 'solicita o nome da nova planilha

    On Error Resume Next

        'Conta qde de Planilhas
        i = Worksheets.Count
        
        'Copia a Planilha "TAG" após a última aba
        wsTag.Copy After:=Worksheets(i)
        i = i + 1
                
    'Declaramos a Nova Planilha e Renomeamos
    Set wshNovaPlan = Worksheets(i)
    With wshNovaPlan
            .Name = nome
            .Range("A1").Select
    End With
 
        'Nocaso de ter Fórmulas e quiser só os valores utilizamos as linhas abaixo
        'Copia a Planilha Ativa e cola sem as formulas
        With wshNovaPlan.UsedRange
            .Copy
            .PasteSpecial Paste:=xlValues
            .Range("A1").Select
        End With
        
        Application.CutCopyMode = False

End Sub
De uma olhada nos links abaixo temos outras rotinas :
VBA – Criando uma cópia somente dados de uma planilha no Excel
http://www.tomasvasquez.com.br/blog/mic ... a-no-excel

VBA – Criando uma cópia somente dados de uma planilha no Excel para uma Nova Pasta
http://www.tomasvasquez.com.br/blog/mic ... nova-pasta

Criar planilha para envio em e-mail
viewtopic.php?f=20&t=641&start=10
[]s


Responder