Hexavigesimal (base26)

Contenu du snippet

En fait pas le Base 26 comme on l'entend mais plutot tel qu'il est appliqué sur les Feuille Excel
cad A = 1 : Z = 26 : AA = 27

Il y a deux fonctions:
une premiere DecToB26 qui a un gros probleme avec le Z .... (la je suis dans l'impasse)
.... si un deux vous a la solution..
une deuxieme B26ToDec qui semble marcher correctement

Source / Exemple :


Private Const Chaine26 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

    'Decimal vers Hexavigesimal windows
    Function DecToB26(ByVal Value As String) As String
        If Not IsNumeric(Value) Then Return Value
        Dim v1 As Long
        Dim Resultat As String = ""
        Do While (Value > 0)
            v1 = (Value Mod 26)
            Value = Int(Value / 26)
            Resultat = Mid$(Chaine26, 0 + v1, 1) & Resultat
        Loop
        Return Resultat
    End Function

    'Hexavigesimal windows vers Decimal   
    Function B26ToDec(ByVal MyString As String) As Decimal
        If IsNumeric(MyString) Then Return MyString 
        Dim v2 As Decimal
        Dim i As Integer
        Dim j As Byte
        Dim Resultat As Decimal
        'Virer les Espaces
        Dim MyString2 As String = MyString.Replace(" ", "").ToUpper
        For i = Len(MyString2) To 1 Step -1
            v2 = InStr(1, Chaine26, Mid$(MyString2, i, 1))
            If v2 < 1 Then Return Resultat
            If v2 >= 27 Then Return Resultat
            For j = 1 To (Len(MyString2) - i)
                v2 = v2 * 26
            Next
            Resultat = Resultat + v2
        Next
        Return Resultat
    End Function

Conclusion :


il s'agit d'une transformation d'un code trouvé sur codyx et adapté

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.