none
Copiar planilha usada em planilha nova RRS feed

  • Pergunta



  • Estou precisando de um código em vb e como é bem parecido com vba vou tentar aqui.

    O programa abre uma planilha excel existente e abre uma nova em branco .Ae ele copia o conteúdo de todos os sheets da existente para a planilha em branco.



    quarta-feira, 16 de janeiro de 2008 19:58

Respostas

  • Segue código comentado em VBA

     

    Code Block

    Sub Copiar_Planilhas()
        Dim ArquivoOrigem As String, ArquivoDestino As String
        Dim Plan As Worksheet
        Dim N_Plan As Integer
       
        'Captura do nome da pasta de trabalho de origem
        ArquivoOrigem = ThisWorkbook.Name
       
        'Abertura da pasta de trabalho de destino
        Workbooks.Open Filename:= _
            "C:\Teste.xls"
       
        'Contagem do nº de planilhas da pasta de destino
        N_Plan = ActiveWorkbook.Worksheets.Count
       
        'Captura do nome da pasta de trabalho de destino
        ArquivoDestino = ActiveWorkbook.Name
       
        'Loop para copiar cada uma das planilhas da pasta de origem
        For Each Plan In ThisWorkbook.Worksheets
        Plan.Copy After:=Workbooks(ArquivoDestino).Sheets(N_Plan)
       
        'Incremento da contagem de planilhas da pasta de destino
        N_Plan = N_Plan + 1
        Next Plan
       
        'Salva as alterações da pasta de destino
        Workbooks(ArquivoDestino).Save
    End Sub

     

     

    OBS:

    1. O código deve estar inserido na pasta de trabalho a partir da qual serão copiadas as planilhas

    2. O arquivo de destino pode ser pesquisado de forma mais interativa, como por exemplo utilizando o método GetOpenFileName.

    3. Acredito que com base nos comentários vc possa modificar o código para atender às suas necessidades.

     

    []s

     

    terça-feira, 22 de janeiro de 2008 15:01

Todas as Respostas

  • Segue código comentado em VBA

     

    Code Block

    Sub Copiar_Planilhas()
        Dim ArquivoOrigem As String, ArquivoDestino As String
        Dim Plan As Worksheet
        Dim N_Plan As Integer
       
        'Captura do nome da pasta de trabalho de origem
        ArquivoOrigem = ThisWorkbook.Name
       
        'Abertura da pasta de trabalho de destino
        Workbooks.Open Filename:= _
            "C:\Teste.xls"
       
        'Contagem do nº de planilhas da pasta de destino
        N_Plan = ActiveWorkbook.Worksheets.Count
       
        'Captura do nome da pasta de trabalho de destino
        ArquivoDestino = ActiveWorkbook.Name
       
        'Loop para copiar cada uma das planilhas da pasta de origem
        For Each Plan In ThisWorkbook.Worksheets
        Plan.Copy After:=Workbooks(ArquivoDestino).Sheets(N_Plan)
       
        'Incremento da contagem de planilhas da pasta de destino
        N_Plan = N_Plan + 1
        Next Plan
       
        'Salva as alterações da pasta de destino
        Workbooks(ArquivoDestino).Save
    End Sub

     

     

    OBS:

    1. O código deve estar inserido na pasta de trabalho a partir da qual serão copiadas as planilhas

    2. O arquivo de destino pode ser pesquisado de forma mais interativa, como por exemplo utilizando o método GetOpenFileName.

    3. Acredito que com base nos comentários vc possa modificar o código para atender às suas necessidades.

     

    []s

     

    terça-feira, 22 de janeiro de 2008 15:01
  • Muito bom código! Parabéns!!! me ajudou bastante. []'s
    quinta-feira, 15 de outubro de 2009 20:36
  • Muito bom código! Parabéns!!! me ajudou bastante. []'s

    se funciona podes marcar como respondida
    Don't judge me, just Upgrade me. Thanks!
    quinta-feira, 15 de outubro de 2009 21:16