quinta-feira, 25 de abril de 2013

Excel - Macro para distribuir uma coluna (A) em várias colunas

A pedido do meu irmão, criei uma macro para o Excel (VBA).

Essa macro pergunta quantas linhas quer deixar por coluna, e divide a coluna A em quantas colunas forem necessárias para atingir o desejado. As colunas B em diante deverão estar VAZIAS, ou o conteúdo será automaticamente sobrescrito após a execução da macro!

Exemplo. Se a coluna A estiver com 1000 linhas (A1 até A1000) e você escolher que cada coluna deverá ter 10 linhas, ele irá dividir as 1000 linhas da coluna A em 100 colunas, ficando: A1 a A10  depois B1 a B10 e assim por diante.

Podem copiar, mas por favor, mantenham os créditos.

Basta colar essa macro abaixo em um módulo do VBA do  Excel.
Para gerar um módulo, basta gravar uma macro qualquer.

Sub Dividir_Coluna()
    '''' CRÉDITOS '''''''''''''''''''''''''
    '''' Autor: Sergio Abreu
    '''' Data: 25/4/2013
    '''' http://sites.sitesbr.net
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
   
    Dim lim&, curr&, addr$, ncol$
   
    curr = 1
   
    s = InputBox("Digite quantas linhas deve ter cada coluna:", "Configuração", "20")
   
    If (s <> "") Then
   
        lim = Val(s)
   
        While Range("A" & lim).Value <> ""
       
            addr = "A" & lim & ":A" & (2 * lim)
            Range(addr).Select
            Selection.Cut
            ncol = Mid(ActiveCell.Cells(0, ActiveCell.Column + curr).Address, 2, 1)
            Range(ncol & "1").Select
            ActiveSheet.Paste
            Range(addr).Select
            Selection.EntireRow.Delete
            curr = curr + 1
            DoEvents
       
        Wend
   
    End If
    
End Sub

2 comentários:

  1. Esta macro foi de grande utilidade, evitando um trabalho manual cansativo e demorado ref. uma planilha de duplicatas...

    ResponderExcluir
  2. nao funcionou comigo favor se puder detalhar como configurar, no meu caso os dados estao na coluna Q iniciando em Q1 e preciso quebrar a coluna em pedaços de 6 em 6. grata pela ajuda

    ResponderExcluir