1
resposta

é possível decidir uma formação específica a partir do vba?

fiz o exercício de criar um codigo no vba de uma lista telefonica, porém ao inserir os dados do telefone é insirido apenas o número (ex: 111111111, em vez de 11111-1111), é possivel criar esse tipo de formação personalizada pelo vba? e como usar as outras formações pré-estabelecidas do excel (ex: data abreviada ou completa etc.) como ccur para dinheiro e clng para texto.

1 resposta

Olá Bernardo, tudo bem? Espero que sim!

Você pode utilizar formatações personalizadas através do código VBA utilizando o método Selection.NumberFormat. Sugiro a você gravar uma macro e definir a formatação em uma célula e verificar o código VBA que foi gerado para realizar aquela formatação. Essa é uma dica para você conseguir ver o código que vai ser utilizado em um exemplo e você poder aplicar em outros casos mais gerais.

Para gravar a macro e checar o código gerado, selecione a aba Desenvolvedor e clique na opção gravar macro. Em seguida selecione uma célula e aplique a formatação desejada. Após isso, encerre a gravação da macro e veja o código gerado no ambiente VBA através do atalho Alt + F11.

Para aplicar a formatação de telefone, como você deseja, basta abrir o painel de formatação, selecionar a opção personalizado e digitar a formatação desejada. O símbolo # serve para identificar um número qualquer.

Gravando uma macro para aplicar uma formatação na célula A1 de uma planilha no Excel 2019. A aba desenvolvedor foi selecionada, partindo para opção gravar macro. Feito isso, a célula A1 foi selecionada, onde estava escrito 11111111, a opção de formatar número foi escolhida a partir da aba página inicial. Ao abrir uma nova aba de formatação, a opção personalizado foi escolhida e foi escrito ####-#### para a formatação personalizada, clicando ao final no botão Ok. A gravação da macro foi encerrada através da aba desenvolvedor e o ambiente VBA foi aberto com o atalho Alt + F11, onde o código da macro gerada estava apresentado no módulo

O código gerado através da gravação da macro foi o seguinte:

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A1").Select
    Selection.NumberFormat = "####-####"
End Sub

O mesmo pode ser feito para formatações de data e outras formatações padrão do Excel, bastando realizar o procedimento de gravação de macro e selecionando a formatação desejada.

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!