Skip to content

pcr-coding/vba-ufi-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VBA UFI Generator

License: MIT

VBA Generator/decoder for ECHA UFIs (Unique Formula Identifier)
According 📚 UFI Developer manual version 1.5 (2022-01).

Syntax

Generate function

Returns a String representing the encoded UFI including dashes.

Generate(CountryCode, VAT, FormulationNumber)
Argument Type Description
CountryCode String Country Code of the VAT number eg. "AT"
VAT String VAT number without country code eg. "U12345678"
FormulationNumber Long Numeric formulation number eg. 178956970

Decode function

Returns a DecodedUFI object of the decoded UFI.

Decode(UFI)
Argument Type Description
UFI String UFI (with or without dashes) eg. "C23S-PQ2V-AMH9-VVRF"

IsValid function

Returns a True if the UFI is valid.

IsValid(UFI)
Argument Type Description
UFI String UFI (with or without dashes) eg. "C23S-PQ2V-AMH9-VVRF"

Examples

Generate UFI

Public Sub ExampleGenerate()
    Dim UFIgen As New UFIgenerator
    
    Debug.Print UFIgen.Generate("AT", "U12345678", 178956970)  'C23S-PQ2V-AMH9-VVRF
End Sub

Decode UFI

Public Sub ExampleDecode()
    Dim UFIgen As New UFIgenerator
    
    Dim UFI As DecodedUFI
    Set UFI = UFIgen.Decode("C23S-PQ2V-AMH9-VVRF")

    Debug.Print UFI.CountryCode, UFI.VAT, UFI.FormulationNumber  'AT U12345678      178956970
End Sub

Decoder includes validation of the UFI and will throw errors if decoding fails or UFI is not valid.

Validate UFI

Public Sub ExampleValidate()
    Dim UFIgen As New UFIgenerator
    
    If UFIgen.IsValid("C23S-PQ2V-AMH9-VVRF") Then
        Debug.Print "Valid"
    Else
        Debug.Print "Invalid"
    End If
End Sub

Validator will only return True/False and does not throw errors.

Unit Testing

Includes unit test modules to be used with RubberDuck. These 2 test modules are only needed for development.

About

UFI (Unique Formula Identifier) generator/decoder

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages