Neste artigo vou fazer contigo um formulário passo-a-passo para criar algumas formatações tradicionais de texto, para não teres de recorrer sempre a utilização de funções ou mesmo do Power Query para formatar pequenos intervalos de células ou efetuar uma correção pontual nos dados.
As formatações que vão ser criadas vão ser para converter o texto em maiúsculas, minúsculas, a primeira inicial em maiúscula e ainda limpar os espaços no texto. 4 formatações que eu considero essenciais e normalmente temos de executar várias vezes… nada melhor que uma macro para este efeito.
O formulário aparece aqui na necessidade de poderes escolher entre as várias formatações e aplicar as várias opções no mesmo local, sem necessidade de teres uma rotina para cada uma das opções.
Criar o formulário e formatar
Vamos começar por criar o formulário e os seus comandos formatando-os. Para começar deves ter a tua disposição o menu PROGRAMADOR [DEVELOPER]. Se não tiveres pode ativar nas opções do Excel:
Menu Ficheiro [FILE] -> Opções [Options] -> Personalizar Friso [Customize Ribbon]

De seguida acedemos ao Visual Basic Editor.

E uma vez no Visual Basic Editor iniciamos um novo formulário pela Opção Insert -> UserForm…

No formulário começamos por definir algumas propriedades base, como o Nome do Objeto, para ser reconhecido pelo VBA, e também o título da barra de título do formulário, por uma questão de apresentação.

Inserir os objetos do Formulário
O formulário vai ter 4 Botões de Opção [Option Buttons] um para cada opção de formatação. Uma Moldura [Frame] para agrupar os botões de opção e mais 2 botões, um para confirmar as formatações e outro para cancelar.
Quando temos o formulário normalmente acedemos diretamente a caixa de ferramentas com os botões. Caso não tenhas a Toolbox, basta acederes ao Menu View e escolher a opção ToolBox.
Depois começamos por inserir um Botão de Opção!

No Botão inserido, podes aplicar algumas propriedades ao teu gosto, contudo 2 são importantes:
- (Name) que corresponde novamente ao nome do objeto e como ele é reconhecido em VBA
- Caption que identifica a etiqueta do botão, no formulário.

De seguida podes inserir os restantes botões e aplicar em cada um as mesmas propriedades, com algumas adicionais conforme a imagem:
- Font: Para alterar o tipo de letra
- Height: Para a altura da caixa de texto
- Width: Para a largura da caixa de texto

Depois de termos os 4 botões de opção, podemos alinhá-los e distribuir o espaço entre eles de forma igual, acedendo ao menu Format.

No próximo passo podemos inserir uma Moldura [Frame] para agrupar os 4 botões de opção.

Para agrupar os botões, basta selecionar os mesmos, e movê-los para a moldura.

Para terminar o “Design” do formulário, basta criar os 2 botões que vão confirmar a formatação ou cancelar o formulário. Nestes objetos deves também alterar pelo menos 2 das propriedades:
- (Name): Para alterar o nome como o objeto é reconhecido em VBA
- Caption: Para definir o nome que aparece em cada botão.

Aplicar o código para o formulário
O código para o formulário é aplicado basicamente nos 2 botões (Confirmar e Cancelar). Efetuando um duplo clique sobre cada um dos botões iniciamos o “Evento Clique” que é ativado sempre que clicamos no botão. O Código é inserido dentro dessa rotina em cada um dos botões.
Botão Cancelar
No Botão cancelar colocamos então o seguinte código que basicamente fecha o formulário. O formulário é reconhecido pela variável base (ME) que representa o objeto atual que estamos a utilizar.
Private Sub cmdCancelar_Click()
Unload Me ‘Código colocado aqui para fechar o formulário
End Sub
Botão Confirmar
O Botão confirmar é o que terá mais código, contudo é um código simples.
Vamos ter 2 variáveis que representam os intervalos de células.
Option Explicit
Dim intervalo As Range ‘Representa o intervalo selecionado
Dim celula As Range ‘Representa a célula de cada intervalo
Teremos uma expressão IF que valida várias condições:
- Se o botão de opção selecionado for maiúsculas…
- Fará um ciclo por cada célula (variável) no intervalo de células selecionado (Variável definida pela função Application.InputBox)
- Converte o valor da célula em Maiúsculas
- A expressão IF volta a testar outro Botão de Opção até testar todos os botões, com o mesmo ciclo a correr, mas cada um com a função adequada.
O código é representado em baixo:
Private Sub cmdConfirmar_Click()
Set intervalo = Application.InputBox(Prompt:=”Selecionar o intervalo a formatar”, Title:=”Intervalo a selecionar”, Type:=8)
If Me.optMausculas Then
For Each celula In intervalo
celula.Value = UCase(celula) ‘Função UCase para converter em Maiúscula o texto
Next celula
ElseIf Me.optMinusculas Then
For Each celula In intervalo
celula.Value = LCase(celula) ‘Função LCase para converter em Maiúscula o texto
Next celula
ElseIf Me.optInicialMaiuscula Then
For Each celula In intervalo
celula.Value = StrConv(celula, vbProperCase) ‘Função StrConv para converter texto
Next celula
Else
For Each celula In intervalo
celula.Value = WorksheetFunction.Trim(celula) ‘Função Trim do Excel para Limpar espaços
Next celula
End If
End Sub
Opções definidas para iniciar o formulário
Quando iniciamos o formulário podemos definir algumas opções a carregar de início. Neste caso vamos apenas colocar um dos botões de opção como pré-selecionado. Para tal fazemos um duplo-clique no formulário para aceder aos seus eventos. Escolhemos o evento Initialize.

E colocamos o seguinte código, que define o Botão de Opção (Maiúsculas) como selecionado por predefinição.
Private Sub UserForm_Initialize()
optMaiusculas.Value = True
End Sub
Criar uma Macro para mostrar o formulário.
No Visual Basic podemos agora inserir um Módulo, ou iniciar a gravação de uma Macro, para aplicar um código que vai correr o Formulário.
No Visual Basic acedemos ao Menu Insert -> Module.
No novo módulo, colocamos apenas o seguinte código:
Sub IniciarFormulario()
frmFormatar.Show
End Sub
Este Código vai iniciar o formulário, mostrando-o. Este código podes aplicar no livro de Macros Pessoais (Personal Macro Workbook) assim como o formulário. Deste modo podes ter a rotina e o formulário disponíveis em qualquer livro que tenhas aberto para efetuar estas formatações básicas de texto!

Leave a Reply