VBA - Conversion décimal en Binaire
Ces fonctions convertissent un nombre entier en Binaire.
Avec WorksheetFunction
Cette fonction utilise la formule Dec2Bin d'Excel.
Arguments :
N [Obligatoire] (Long) : doit être compris entre -512 et 511 (inclus)
P [Facultatif] (Long) : Nombre de caractères utiles.
Si P est omit, DecToBin2 utilises le minimum de caractères utiles.
Function Dec_Bin(ByVal N As Long, Optional P As Long) As String If N > 511 Then Dec_Bin = "Erreur : N est trop grand ! (N doit être <= 511)" ElseIf N < -512 Then Dec_Bin = "Erreur : N est trop petit ! (N doit être >= -512)" Else If P = 0 Then Dec_Bin = WorksheetFunction.Dec2Bin(N) Else Dec_Bin = WorksheetFunction.Dec2Bin(N, P) End If End If End Function
Fonction VBA
Fonction de conversion pure VBA moins restrictive.
Arguments :
N [Obligatoire] (Long) : Doit être un nombre entier positif
Function Dec_En_Bin(ByVal N As Long) As String Dim strTemp As String Do While N > 1 strTemp = N - 2 * (N \ 2) & strTemp N = N \ 2 Loop Dec_En_Bin = N & strTemp End Function
Exemple d'appel
Sub Test() Dim Nb As Long Nb = 50 Debug.Print Nb & " nous donne (avec worksheetfunction) : " & Dec_Bin(Nb) Debug.Print Nb & " nous donne (avec VBA) : " & Dec_En_Bin(Nb) Nb = 9000 Debug.Print Nb & " nous donne (avec worksheetfunction) : " & Dec_Bin(Nb) Debug.Print Nb & " nous donne (avec VBA) : " & Dec_En_Bin(Nb) End Sub
Résultat :
50 nous donne (avec worksheetfunction) : 110010
50 nous donne (avec VBA) : 110010
9000 nous donne (avec worksheetfunction) : Erreur : N est trop grand ! (N doit être <= 511)
9000 nous donne (avec VBA) : 10001100101000
Ce document intitulé « VBA - Conversion décimal en Binaire » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.