Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1991 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  dép capcité

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

dép capcité

n°1938701
julie21000
Posté le 08-11-2009 à 09:23:38  profilanswer
 


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 ?  
 

mood
Publicité
Posté le 08-11-2009 à 09:23:38  profilanswer
 

n°1938713
kiki29
Posté le 08-11-2009 à 11:02:29  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  dép capcité

 

Sujets relatifs
Plus de sujets relatifs à : dép capcité


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)