none
Copiar Várias Planilhas de uma Pasta de Trabalho RRS feed

  • Pergunta

  • Boa tarde!

     

    Amigos é o seguinte, tenho umarquivo em excel com 380 planilhas e quero juntar todas essas planilhas em uma única. Procurando na Net achei um código de VB com uma rotina para fazer isso, mas quando executo o código de tempos em tempos (a cada 3 planilhas copiadas +/-) fica faltando uma coluna em um grupo de linhas, como não sei nada de VB e/ou Macro peço a ajuda de vocês.

    Para exemplificar:

     

    As planilhas tem 5 colunas e 50 linhas cada, quando executo o código ele copia todas as linhas e colunas da planilha 1 até a 5 quando chega na planilha 6 fica faltando a última coluna e apartir da planilha 7 volta ao normal até a planilha 10 e ai ____ mais um intervalo sem a última coluna.

     

    Segue abaixo o código que consegui para análise:

    'Determinação do nº de planilhas do banco de dados
    N = ThisWorkbook.Sheets.Count

    'Loop para percorrer as planilhas
        For i = 2 To N
          
            'Determina o número de linhas preenchidas da Plan1
            Linhas = Application.WorksheetFunction.CountA(Sheets(1).Columns(1))
          
            'Seleciona uma planilha
            Sheets(i).Select
          
            'Determina o número de linhas preenchidas da planilha selecionada
            iLinhas = Application.WorksheetFunction.CountA(Sheets(i).Columns(1))
          
            'Determina o número de colunas preenchidas da planilha selecionada
            iColunas = Application.WorksheetFunction.CountA(Sheets(i).Rows(1))
          
            'Copia da planilha selecionada para a Plan1
            Range(Cells(2, 1), Cells(iLinhas, iColunas)).Copy (Sheets(1).Cells(Linhas + 1, 1))
        Next i

    'Seleciona a Plan1
    Sheets(1).Select
    End Sub

     

    Desde já agradeço a ajuda!

    [ ]'s

    Paulo Lima

     

    quarta-feira, 30 de junho de 2010 19:48

Todas as Respostas

  • Paulo boa noite

     

    Use este código, muito mais simples e eficiente..

    Sub Copia_Sht()
    Dim Wb As Workbook
    Dim Sht As Worksheet
    
    
    Set Wb = Workbooks.Add
    
    For Each Sht In ThisWorkbook.Sheets
     Sht.Copy Wb.Sheets(1)
    Next Sht
    
    End Sub

     

    deste modo é como se vc clicasse com o botão direito do mouse, e usasse a opção copiar planilha.

    Teste ai e qualquer coisa fale.

    Att


    Bruno Silva Leite Office Developer
    quarta-feira, 30 de junho de 2010 23:04
  • Caro amigo, creio que não me expressei bem, pois o que quero é copiar o conteúdo das planilhas em uma só planilha, e não fazer uma cópia da pasta de trabalho, pois foi isso que o código fez.

     

    Mesmo assim obrigado!

     

    [ ]'s

     

    Paulo Lima

    quinta-feira, 1 de julho de 2010 10:59