Página 1 de 1

Ajuda UDF para normalizar códigos

Enviado: 16 Nov 2020 às 13:55
por JCabral
Boas

Tenho os seguintes tipos de códigos num ficheiro CSV que gostava de normalizar conforme mostro a seguir

O QUE TENHO COMO PRETENDO
ABCDE-123 ABCDE-123
ABCDE-70 ABCDE-070
ABCDE-8 ABCDE-008
ABCDE-45-xxxxx ABCDE-045-xxxxx
ABCDE-5-xxxxx ABCDE-005-xxxxx

Os primeiros cinco caracteres podem ser diversos e são sempre em número de cinco o primeiro "-" é sempre o sexto caracter.

Precisava de uma ajuda para fazer uma UDF para resolver este problema.
Obrigado

Re: Ajuda UDF para normalizar códigos

Enviado: 16 Nov 2020 às 15:13
por Foxtri
Boas

Veja se serve o exemplo que te apresento.(Existem varias maneiras de fazer).

Function NORM(rng As Range)
Dim i As Integer
Dim Ct As Variant, Cv As Variant, Sp As Variant
For i = 1 To Len(rng)
Select Case i
Case 7, 8, 9
If Mid(rng, i + 1, 1) = "-" Then sep = "-"
Ct = Ct & Mid(rng, i, 1)
Case Is > 9
If Mid(rng, i, 1) <> "" Then
Cv = Cv & Mid(rng, i, 1)
End If
End Select
Next
Ct = Val(Ct)
If IsNumeric(Ct) And Len(Ct) = 3 Then NORM = rng: Exit Function
Select Case Len(Ct)
Case 1
NORM = Mid(rng, 1, 6) & "00" & Ct & sep & Cv
Case 2
NORM = Mid(rng, 1, 6) & "0" & Ct & sep & Cv
End Select
End Function

Até

Foxtri

Re: Ajuda UDF para normalizar códigos

Enviado: 17 Nov 2020 às 12:00
por JCabral
É mesmo isso
Obrigado Foxtri