[VBA] Desmesclar um intervalo mantendo o valor em todas as células

Hoje me deparei com uma pergunta inédita em um dos fóruns que participo. O usuário perguntou se há algum meio de desmesclar um intervalo mantendo o valor em todas as células.

Bom, minha resposta é que desconheço como fazer isso via recursos nativos do Excel. Porém, a boa notícia é que é possível criar um código simples no VBA para realizar tal tarefa. Vou explicar passo a passo como fazer:

1º) Entre no Visual Basic for application (VBA) pressionando ALT+F11 no seu Excel, ou clicando no ícone do VBA na aba de desenvolvedor (Aba que não vem habilitada como padrão, se não estiver habilitada é necessário habilitar nas opções do Excel).

Excelmaniacos - Desmesclar 1

2º) Na tela do VBA, insira um módulo no seu projeto clicando com o botão direito sobre o projeto do seu arquivo ativo:

Excelmaniacos - Desmesclar 2

3º) No módulo digite o código abaixo:

Sub Desmesclar_Mantendo_valores_nas_células()
Dim Rng As Range
For Each Rng In Application.Selection
    If Rng.MergeCells Then
        With Rng.MergeArea
            .UnMerge
            .Formula = Rng.Formula
        End With
    End If
Next
End Sub

Excelmaniacos - Desmesclar 3

4º) Feito isso, o seu arquivo atual já está habilitado para realizar a tarefa de desmesclar mantendo o valor em todas as células. Você pode fechar a janela do VBA e testar na planilha mesclando um intervalo com algum valor e posteriormente desmesclando a partir da macro criada:

Excelmaniacos - Desmesclar 4Resultado:

Excelmaniacos - Desmesclar 5

Se a necessidade é para algum arquivo pontual, você pode seguir este procedimento para o arquivo. Agora, se você deseja tornar essa rotina uma opção integrante do seu Excel para funcionar em qualquer arquivo, você deve copiar o código num módulo da sua pasta pessoal de macro do Excel. Essa pasta, por padrão, não vem criada no Excel, portanto é preciso criá-la. Para isso, vou deixar um link com o procedimento da Microsoft para criação dessa pasta:

https://support.office.com/pt-br/article/Criar-e-salvar-todas-as-macros-em-uma-%C3%BAnica-pasta-de-trabalho-aa439b90-f836-4381-97f0-6e4c3f5ee566?ui=pt-BR&rs=pt-BR&ad=BR

Após criar o código nesta pasta pessoal, você pode criar uma aba personalizada e adicionar essa macro a um grupo personalizado ou adicionar a macro a sua barra de ferramentas de acesso rápido. Desta forma, você terá a opção disponível com apenas um clique.

16 comentários em “[VBA] Desmesclar um intervalo mantendo o valor em todas as células

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Gravatar
Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s