Máscara de célula

Como pintar uma célula, como formatar uma borda, funções básicas! Se você não sabe em que categoria postar a sua dúvida, escreva aqui que depois nós mudamos o tópico.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Máscara de célula

Mensagempor Rubélio » Qua Jun 12, 2019 8:34 pm

Boa noite!
Preciso definir uma máscara para quando eu digitar A111 na célula exiba A1-11, ou B123 exiba B1-23. Enfim, meu primeiro dígito sempre será uma letra qualquer e os três restantes sempre números.
Abraço
Rubélio
Membro
Membro
 
Mensagens: 53
Registrado em: Ter Set 04, 2012 9:14 am
Has thanked: 26 times
Have thanks: 1 time

{ SO_SELECT }

Re: Máscara de célula

Mensagempor wagner » Qui Jun 13, 2019 10:44 am

Rubélio,

Bom dia!

Basta você inserir esse código aqui na Plan1 do VBA:
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Dim Texto As String
    Application.EnableEvents = False
    If Target.Count > 1 Then
        Application.EnableEvents = True
        Exit Sub
    End If
    Texto = Target.Value
    Texto = Left(Target.Value, 2) & "-" & Right(Target.Value, Len(Target.Value) - 2)
    Target.Value = Texto
    Application.EnableEvents = True
End Sub

Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5501
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 100 times
Have thanks: 2331 times

Re: Máscara de célula

Mensagempor Rubélio » Qui Jun 13, 2019 7:45 pm

Oi, Wagner. Muito obrigado!
E se eu quiser fixar esta formatação smente às células da coluna B, como fica o código?
Abç.
Rubélio
Membro
Membro
 
Mensagens: 53
Registrado em: Ter Set 04, 2012 9:14 am
Has thanked: 26 times
Have thanks: 1 time

Re: Máscara de célula

Mensagempor wagner » Sex Jun 14, 2019 7:50 am

Rubélio,

Bom dia

Se você tivesse dito isso na sua primeira mensagem já teria feito da forma esperada.

Só acrescentar um If, assim:
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Dim Texto As String
    Application.EnableEvents = False
    If Target.Count > 1 Then
        Application.EnableEvents = True
        Exit Sub
    End If
    If Target.Column = 2 Then
         Texto = Target.Value
         Texto = Left(Target.Value, 2) & "-" & Right(Target.Value, Len(Target.Value) - 2)
         Target.Value = Texto
     End If
    Application.EnableEvents = True
End Sub
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5501
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 100 times
Have thanks: 2331 times


Voltar para Excel - O básico

Quem está online

Usuários navegando neste fórum: Palmanhani e 2 visitantes