Formulário para formatar texto no Excel!
Neste novo artigo, vamos fazer um formulário para criar algumas formatações tradicionais de texto, de modo que não tenhas de recorrer à utilização de funções, ou mesmo do Power Query, para formatar pequenos intervalos de células ou efetuar uma correção po
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. São 4 formatações que eu considero essenciais que, 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.
Não percas aqui todo o processo passo-a-passo detalhado e, se tiveres alguma dúvida, envia-nos a uma mensagem... ficamos à tua espera!
Faça aqui o download dos seus ficheiros de apoio!
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!
Outros conteúdos relevantes:
Microsoft Excel: Remover Duplicados, mas a 1ª ocorrência, não a 2ª!
Neste novo vídeo, vou mostrar-te como podes remover não a última ocorrência, mas sim a primeira ocorrência do valor duplicado, no Microsoft Excel. Vamos lá?
Usar a Função nova LAMBDA para reutilizar cálculos e conjugações
Confira como a função LAMBRA, do Microsoft Excel, vai revolucionar a forma como realizamos operações, reutilizando cálculos ou conjugações de fórmulas.