dép capcité

dép capcité - VB/VBA/VBS - Programmation

Marsh Posté le 08-11-2009 à 09:23:38    


Public Function ChgBase(n As String) As Long
Dim r As Long
Dim j As Long
    r = 1
    For j = Len(n) To 1 Step -1
        If Mid$(n, j, 1) = "1" Then
            ChgBase = ChgBase + r
        End If
        r = r * 2
    Next
End Function
 
 
 
Dans une cellule d'Excel (B2) je mets le nombre 1000000000000000 et puis dans une autre cellule du tableur je mets =ChgBase(B2)  
le paramètre d'appel étant une référence à une cellule, j'obtiens 18 car l'ordi va convertir le nombre en 1E+15 lors de l'appel de la fonction. Je précise tout de même que j'ai bien mis le format de cellule de B2 en nombre (avec 0 décimale) et j'ai bien sous Excel en B2 la valeur 1000000000000000.  
Lorsque je débug avec un point d'arrêt à l'appel de la fonction il me converti tout ça en 1E+15 (vérif effectuée avec un point d'arrêt). Je dois obligatoirement passer par une cellule pour déposer la valeur à convertir ça fait partie des oblig. Auriez vous une une solution ?  
 

Reply

Marsh Posté le 08-11-2009 à 09:23:38   

Reply

Marsh Posté le 08-11-2009 à 11:02:29    

Salut, '1000000000000000 ce qui donne 32768 ( 2^15)


Sub Tst()
Dim sStr As String
    sStr = "1000000000000000"
    MsgBox ChgBase(sStr)
    'Debug.Print ChgBase(sStr)
End Sub


 
Pour Info voir http://support.microsoft.com/kb/189862/en-us
http://www.developpez.net/forums/s [...] 669&page=2


Message édité par kiki29 le 08-11-2009 à 11:16:37
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed