* Bonjour *

par curiosité je crée une fonction
d'abord la macro pour "voir le code"


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Macro5()
Dim at, t, po, point, a
    a = Range("i9").Value
    For t = Len(a) To 1 Step -1
        at = at + 1
        If Mid(a, at, 1) = 0 Then
              point = point
           Else
              point = point + (2 ^ (t - 1))
        End If
     Next
     Range("g9").Value = point
End Sub
celle ci sur un nombre : 101001 me retourne 41 (vérification avec BINDEC c'est bien 41)
pourquoi

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Function BiNaire(a As Double) As Double
Dim at, t, po, point
    For t = Len(a) To 1 Step -1
        at = at + 1
        If Mid(a, at, 1) = 0 Then
                point = point
            Else
                point = point + (2 ^ (t - 1))
        End If
    Next
    BiNaire = point
End Function
me renvoi 167 comme valeur ?
j'ai beau retourner ceci dans tous les sens je ne vois pas ce qui coince.
mon effondrement moral est tel que j'envisage de visionner la collection VHS de Dallas de ma mère ... elle a aussi cote ouest

* merci d'avance *