Private Sub ButtonGenerate_Click() 'Add your own error handling / validation On Error Resume Next Dim A, B, C, D, E, F, G, H, I, J, K, L, M 'Gets the first part of the code A = Mid(Code1, 1, 1) B = Mid(Code1, 2, 1) C = Mid(Code1, 3, 1) 'Gets the second part of the code D = Mid(Code1, 4, 1) E = Mid(Code1, 5, 1) F = Mid(Code1, 6, 1) G = Mid(Code1, 7, 1) H = Mid(Code1, 8, 1) I = Mid(Code1, 9, 1) J = Mid(Code1, 10, 1) K = Mid(Code1, 11, 1) 'Shows the Version Number on the form VersionNumber = A & "." & B & "." & C 'Shows the Date Installed on the form 'Unscrambles the date 'Format = DDMMYYYY 'D1 Y1 D2 Y2 M1 Y3 M2 Y4 DateInstalled = D & F & "/" & H & J & "/" & E & G & I & K 'Generate the first part of the Registration Code Dim hexno1, x1 Dim Unlock1 As String hexno1 = A & B & C For x1 = 1 To Len(hexno1) Step 2 Next Unlock1 = CLng("&h" & hexno1) 'Generate the second part of the Registration Code Dim hexno2, x2 Dim Unlock2 As String hexno2 = D & E & F & G & H & I & J & K For x2 = 1 To Len(hexno2) Step 2 Next Unlock2 = CLng("&h" & hexno2) 'Generate the Registration Code 'Splits the second part in two '4 digits then the rest L = Mid(Unlock2, 1, 4) M = Mid(Unlock2, 5, 20) Code2 = Unlock1 & "-" & L & "-" & M End Sub