none
Copiando várias planilhas e colando em uma só, usando vba RRS feed

  • Pergunta

  • Boa tarde,

    Estou aprendendo vba, mas estou com dificuldade em criar uma macro para fazer o seguinte procedimento.

    Tenho 15 planilhas em um arquivo , todas com o mesmo rótulo de dados. São 15 relatórios de pessoas diferentes e preciso copiar todos e colar na planilha 1, a qual servirá de banco de dados e poderei usar autofiltros.

    A minha dificuldade é a seguinte: seleciono a planilha 2 e todo o conteudo da planilha 2, copio e colo na planilha 1, seleciono a planilha 3 e todo o conteudo da planilha 3, vou na planilha 1 e colo a informação na primeira linha em branco depois do conteudo da planilha 2, seleciono a planulha 4 e todo o conteudo da planilha 4, vou na planilha 1 e colo a informação na primeira linha em branco depois do conteudo da planilha 3 e assim por diante.

    Como faço isso usando programação vba?

    Muito Obrigado,

    Gustavo

    sábado, 19 de janeiro de 2008 20:00

Respostas

  • Segue o código abaixo com os respectivos comentários

     

    Code Block

    Sub Copia_e_Cola_Planilhas()
    Dim N As Integer, Linhas As Integer, i As Integer
    Dim iColunas As Integer, iLinhas As Integer

    '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

     

     

    []s

    terça-feira, 22 de janeiro de 2008 09:51