Lista das funções do Excel (em PowerBI)

sexta-feira, 28 de dezembro de 2012

Macro para múltiplas substituições no Excel 2013

Há muito que estava prometido esta Macro em Excel, para executar múltiplas substituições. Irei utilizar a versão Excel 2013 mas funciona exatamente da mesma maneira em qualquer outra versão do programa.
Localizar e Substituir é uma operação comum e simples no Excel. A questão está no numero de substituições a fazer!
Quando a lista de substituições é extensa a função Localizar e Substituir não é suficiente.
Nesse sentido desenvolvi uma Macro que facilita imenso esse trabalho.
É muito simples de usar e os resultados são espantosos!

Vamos então instalar o código no Excel para podermos utilizar sempre que necessário.
Abra o Excel e pressione simultaneamente as teclas Alt+F11 de modo a abrir a janela do Editor de Visual Basic. Do lado esquerdo na janela dos projetos  localize o livro PERSONAL.XLSB*, abra um dos módulos ou insira um novo e cole o código abaixo.

Sub multisubstituir()
On Error Resume Next
    Dim myList, myRange
    Set myList = Application.InputBox(prompt:="Selecione a lista das substituições (2colunas)", _
    Title:="Tabela das Substituições", Type:=8)
    Set myRange = Application.InputBox(prompt:="Selecione as celulas a substituir", _
    Title:="Área a Substituir", Type:=8)
    For Each cel In myList.Columns(1).Cells
        myRange.Replace What:=cel.Value, _
        replacement:=cel.Offset(0, 1).Value, LookAt:=xlWhole
    Next cel
End Sub

Conforme a imagem seguinte.


Vamos fechar o Excel de modo a guardar o livro PERSONAL.XLSB. Clique no botão com a cruz no canto superior direito de modo a encerrar o Excel. Não necessita guardar o livro usado como exemplo nem o que fez no Editor de Visual Basic. Quando o Excel que lhe perguntar se deseja guardar as alterações efetuadas no livro Personal Macro Workbook, clique em Guardar! Assim esta macro ficará disponível sempre que utilizar este Excel.


Para utilizar o código faça da seguinte forma:
1- Crie uma lista das substituições a realizar. Pode ser feito numa nova folha.
2- Aceda ao separador View, no grupo macros escolha View Macros...
3- Selecione a macro multisubstituir e clique em Run.
4- Na primeira caixa selecione os pares de células a substituir. Criado no ponto 1.


5- Nesta segunda caixa selecione a área onde aplicar as substituições. Pode localizar e substituir em células, linhas, colunas ou ainda toda a folha.


Já está! Super simples e rápido!;-)

Sempre que precisar fazer uma substituição em série basta correr esta macro.
NOTA: Para seleccionar todas as células de uma folha, clique no botão acima da linha 1 e à esquerda da letra A. Conforme imagem abaixo.


*caso não exista o livro siga o seguinte procedimento:
1-No separador View, no grupo Macros escolha Record macro...
2- Altere apenas Store macro in: para Personal Macro Workbook e clique Ok.
3- Volte ao mesmo botão e agora escolha Stop Recording

Agora já deve existir o projeto .



Por: Paulo Costa
       pcosta71@gmail.com

8 comentários:

  1. existe um numero maximo de caracteres para o valor da coluna b da tabela?

    ResponderEliminar
  2. Penso que o valor máximo de caracteres será 32.767.
    No entanto para valores superiores a 1.024 já existem algumas restrições.
    Para mais informações, por favor, veja mais aqui: http://support.microsoft.com/kb/211580/pt

    ResponderEliminar
  3. mt bom cara... obrigado por essa macro!

    ResponderEliminar
  4. Olá Paulo. Ao invés de substituir tem como colar na coluna da frente preservando o original? Obrigado

    ResponderEliminar
  5. tem como substituir os textos nas abas tipo (Plan1) sub (1) por (nada)

    ResponderEliminar
  6. 3 anos depois e a dica ainda está ajudando! muito Obrigado pela macro, economizou muito tempo aqui.

    ResponderEliminar
  7. Gostaria de saber a forma de fazer não somente para campos exclusivos, exemplo: Possuo uma frase e dentro dessa frase gostaria de substituir apenas alguns nomes.

    ResponderEliminar

Nota: só um membro deste blogue pode publicar um comentário.