Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Código VBA para tirar espaços em branco (em textos, números e células vazias) de células do Excel à esquerda e à direita

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
joaoemduvida
Colaborador
Colaborador
Mensagens: 14
Registrado em: Seg Abr 06, 2020 11:17 am

Código VBA para tirar espaços em branco (em textos, números e células vazias) de células do Excel à esquerda e à direita

Mensagem por joaoemduvida »

Caro colega,

Eu não sei criar um código completo no VBA, mas consigo entender algumas partes dos códigos.

Eu queria um código em VBA que pudesse ser aplicado em células com textos, números e vazias para retirar espaços em branco à esquerda e à direita dos textos ou números.

Quando colo uma tabela do Excel no Word em formato html mantendo o vínculo ela aparece com espaços em branco entre as células.

Para consertar isto preciso fazer manualmente "ctrl + u" no Word (localizar e substituir), mas gostaria que esses espaços fossem retirados no próprio Excel e para isso gostaria de utilizar um código VBA, pois aplicar as fórmulas em cada célula da minha planilha (que é grande) vai me dar muito trabalho. A fórmula que funciona para mim célula a célula é esta:

Para números:

=ARRUMAR(SUBSTITUIR(A1;CARACT(160);CARACT(32)))*1

Para textos e células vazias:

=ARRUMAR(SUBSTITUIR(A1;CARACT(160);CARACT(32)))

Encontrei uma solução que poderia se aplicar ao meu caso se eu quisesse que fossem retirados inclusive os espaços em branco entre as palavras (o que não é meu interesse): viewtopic.php?t=1532

O que achei interessante nele é ele gerar uma caixa pedindo para selecionar as células que terão os espaços retirados). Segue o código:

Sub Clear()

Dim rLocal As Range

'Atribuição das variáveis

Set rLocal = Application.InputBox(Prompt:="Selecione as células que deseja limpar...", Type:=8)

rLocal.Replace What:=" ", Replacement:=""

End Sub

Achei em um fórum em inglês aleatório um tópico com outro código, a seguir, que funcionou para mim quando alterei o "" por " " (apenas para textos). Mas ele parece ser bastante pesado e parece fazer a mesma substituição várias vezes. Segue o código:

Public Sub RemoveSpaceInString()

Dim myCell As Range

For Each myCell In Selection

myCell = Trim(myCell)

myCell = Replace(myCell, vbTab, "")

myCell = Replace(myCell, " ", "")

myCell = Replace(myCell, Chr(160), "")

Next myCell

End Sub

Alguém poderia me ajudar? Caso não seja possível criar o Application.InputBox que o código faça esta alteração para todas as planilhas da pasta de trabalho do Excel.

Obrigado pela atenção.

Aguardo uma ajuda.

João


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder