@CanalQb

Excel - VBA - Múltiplas colunas em 1


Automatize a Conversão de Dados com Este Script Excel VBA!


A tarefa de converter intervalos de dados em colunas individuais no Excel pode ser um processo repetitivo e demorado. No entanto, com a ajuda do seguinte script VBA, você pode simplificar essa tarefa e economizar tempo precioso. 
Sub ConverterIntervaloParaColuna()
    Dim IntervaloOrigem As Range, CélulaDestino As Range, Célula As Range
    Dim ÍndiceLinha As Integer
    
    xTitleId = "KutoolsforExcel"
    
    ' Selecione o intervalo de origem
    Set IntervaloOrigem = Application.Selection
    Set IntervaloOrigem = Application.InputBox("Intervalo de Origem:", xTitleId, IntervaloOrigem.Address, Type:=8)
    
    ' Selecione a célula de destino (um único ponto na coluna onde os dados serão colados)
    Set CélulaDestino = Application.InputBox("Converter para (célula única):", xTitleId, Type:=8)
    
    ÍndiceLinha = 0
    
    Application.ScreenUpdating = False
    
    ' Loop através de cada célula no intervalo de origem
    For Each Célula In IntervaloOrigem.Rows
        Célula.Copy
        CélulaDestino.Offset(ÍndiceLinha, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
        ÍndiceLinha = ÍndiceLinha + Célula.Columns.Count
    Next Célula
    
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub
Este script permite que você escolha um intervalo de origem e uma célula de destino. Ele copiará os dados do intervalo de origem para a célula de destino, transpondo os dados de forma que cada valor fique em uma nova linha.

Como Usar:


Abra o Excel e pressione Alt + F11 para abrir o Editor VBA.
Insira o script acima no Editor VBA.
Feche o Editor VBA.
Pressione Alt + F8 para abrir a janela "Macro".
Selecione "ConverterIntervaloParaColuna" e clique em "Executar".
Esse script pode agilizar consideravelmente o processo de conversão de intervalos em colunas individuais, poupando seu tempo e esforço.

Aviso: Lembre-se sempre de criar uma cópia de segurança do seu arquivo antes de executar macros VBA.