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.