VBA Generator/decoder for ECHA UFIs (Unique Formula Identifier)
According 📚 UFI Developer manual version 1.5 (2022-01).
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 |
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" |
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" |
Public Sub ExampleGenerate()
Dim UFIgen As New UFIgenerator
Debug.Print UFIgen.Generate("AT", "U12345678", 178956970) 'C23S-PQ2V-AMH9-VVRF
End SubPublic 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 SubDecoder includes validation of the UFI and will throw errors if decoding fails or UFI is not valid.
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 SubValidator will only return True/False and does not throw errors.
Includes unit test modules to be used with RubberDuck. These 2 test modules are only needed for development.