Formulário para Formatação de Texto no Excel

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!


Comentários

Leave a Reply

Discover more from Exceldriven

Subscribe now to keep reading and get access to the full archive.

Continue reading