Página 1 de 1

[RESOLVIDO] Ajuda - Formatação no Excel

Enviado: 14 Abr 2022 às 14:24
por susev
Pessoal, boa tarde.

Preciso formatar a planilha em anexo com os números em forma de processo, assim: 0000000-00.0000.0.00.0000
Já tentei muito, mas o Excel coloca pontos onde não deveria. Conseguem me ajudar, por favor?
Agradeço muito!

Re: Ajuda - Formatação no Excel

Enviado: 14 Abr 2022 às 14:51
por MarcilioLobao
susev, Boa tarde.

Utilize esse tipo de formato: 0000000-00\.0000\.0\.00\.0000

Por favor, nos diga se era isso o que você queria.
Espero ter ajudado

14-04-2022-GURU-modelo.xlsx

Re: Ajuda - Formatação no Excel

Enviado: 14 Abr 2022 às 15:37
por susev
Olá Marcílio,
Era exatamente isso. Agradeço demais pela sua ajuda, me salvou!

Re: [RESOLVIDO] Ajuda - Formatação no Excel

Enviado: 14 Abr 2022 às 15:58
por babdallas
O Excel é limitado a 15 dígitos e sua formatação precisa de mais de 15 dígitos. Criri um objeto tabela formatado como texto. Criei uma função no VBA para formatar o texto da forma que pediu, sendo acionado a cada vez que vc digitar e der enter.

As macros utilizadas foram:
Código: Selecionar todos
Public Function FormataTexto(vrtTexto As String)
    Dim vrtAcentos      As Variant
    Dim vrtAcento       As Variant
    Dim vrtNovoTexto    As String
    
    vrtAcentos = Array(".", ",", "~", "^", "´", "`", _
                        "-", "_", "+", "=", "{", "}", _
                        "[", "]", "(", ")", "/", "?", _
                        "", "", "")
    
    vrtNovoTexto = vrtTexto
    For Each vrtAcento In vrtAcentos
        vrtNovoTexto = VBA.Replace(vrtNovoTexto, vrtAcento, "")
    Next vrtAcento
    
    FormataTexto = VBA.Left(vrtNovoTexto, 7) & "-" & _
                    VBA.Mid(vrtNovoTexto, 7, 2) & "." & _
                    VBA.Mid(vrtNovoTexto, 10, 4) & "." & _
                    VBA.Mid(vrtNovoTexto, 14, 1) & "." & _
                    VBA.Mid(vrtNovoTexto, 15, 2) & "." & _
                    VBA.Right(vrtNovoTexto, 4)
End Function
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ErrorHandler
    If Not Application.Intersect(Target, wshTeste.ListObjects("tbTexto").DataBodyRange) Is Nothing Then
        Target.Value2 = FormataTexto(Target.Value2)
    End If
    
ErrorHandler:
    
End Sub

Re: [RESOLVIDO] Ajuda - Formatação no Excel

Enviado: 14 Abr 2022 às 16:06
por babdallas
Achei que não podia ter uma coluna adicional. Como pode, melhor usar a solução do @MarcilioLobao .

Re: [RESOLVIDO] Ajuda - Formatação no Excel

Enviado: 14 Abr 2022 às 16:16
por MarcilioLobao
susev, Boa tarde.

Fico realmente feliz em ter lhe ajudado.

Obrigado pelo feedback.

Re: [RESOLVIDO] Ajuda - Formatação no Excel

Enviado: 14 Abr 2022 às 16:23
por susev
@babdallas babdallas,
Sua solução também foi ótima. Muito obrigada pela ajuda!!