'je n'ai pas utilisé Lbound() mais rien ne l'empêche
'Passer donc un tableau de base 0 (ou la modifier :) )
Private Function Bytes2Bools(Bytes() As Byte, MultiDim As Boolean) As Boolean()
Dim iByte As Integer
Dim iBool As Integer
Dim Res() As Boolean
'on dimensione le tableau de sortie
If MultiDim Then
ReDim Res(0 To UBound(Bytes), 0 To 7)
Else
ReDim Res(0 To ((UBound(Bytes) + 1) * 8) - 1)
End If
'pour chaque Byte contenu dans
'le tableau des parametre
For iByte = 0 To UBound(Bytes)
'pour chaque bit du Byte
For iBool = 0 To 7
'suivant le choix de la dimension
If MultiDim Then
Res(iByte, iBool) = (((2 ^ iBool) And Bytes(iByte)) <> 0)
Else
Res((iByte * 8) + iBool) = (((2 ^ iBool) And Bytes(iByte)) <> 0)
End If
Next iBool
Next iByte
'on retourne le tableau construit
Bytes2Bools = Res
End Function