OVH Cloud OVH Cloud

Fonction qui retourne un tabelau de bytes

4 réponses
Avatar
JGP_NoMail
Bonjour,

J'ai une fonction qui retourne un tabelau de bytes
Public Function fctBytes(length As Integer) As Byte()

Comment faire pour affecter le resultat a un tableau de bytes, le code
dessous ne compile pas "impossible d'affecter a un tableau"

dim tableau(10) as byte
tableau = fctBytes(10)

JGP

4 réponses

Avatar
Jacques
Bonjour,
JGP_NoMail a écrit :

Bonjour,

J'ai une fonction qui retourne un tabelau de bytes
Public Function fctBytes(length As Integer) As Byte()

Comment faire pour affecter le resultat a un tableau de bytes, le code
dessous ne compile pas "impossible d'affecter a un tableau"

dim tableau(10) as byte
tableau = fctBytes(10)

JGP







Chaque élément d'un tableau doit être assigné individuellement.
=> Click sur 'Aide quand tu as le message d'erreur. il faut passer par
un Variant et éventuellement réaffecter à un tableau de Byte :

Dim v As Variant
Dim tbl() As Byte
Dim i As Integer

v = fctBytes(10)
ReDim tbl(UBound(v))
For i = 1 To UBound(tbl)
tbl(i) = v(i)
Next i


--
Cordialement,

Jacques.
Avatar
Patrice Henrio
Voici un exemple testé. Il faut que ta déclaration de fonction soit dans un
module et pas dans une classe.
Avec une forme et un commandButton

Private Sub Command1_Click()
Dim T() As Byte
T = F()

Dim I As Integer
For I = 1 To Ubound(T)
Debug.Print T(I)
Next

End Sub
Dans un module
Public Function F() As Byte()
Dim R(1 To 10) As Byte, I As Integer
For I = 1 To 10
R(I) = I
Next
F = R
End Function



"Jacques" a écrit dans le message de
news: %23xAEb$
Bonjour,
JGP_NoMail a écrit :

Bonjour,

J'ai une fonction qui retourne un tabelau de bytes
Public Function fctBytes(length As Integer) As Byte()

Comment faire pour affecter le resultat a un tableau de bytes, le code
dessous ne compile pas "impossible d'affecter a un tableau"

dim tableau(10) as byte
tableau = fctBytes(10)

JGP







Chaque élément d'un tableau doit être assigné individuellement.
=> Click sur 'Aide quand tu as le message d'erreur. il faut passer par un
Variant et éventuellement réaffecter à un tableau de Byte :

Dim v As Variant
Dim tbl() As Byte
Dim i As Integer

v = fctBytes(10)
ReDim tbl(UBound(v))
For i = 1 To UBound(tbl)
tbl(i) = v(i)
Next i


--
Cordialement,

Jacques.


Avatar
Jacques
Patrice Henrio a écrit :
Voici un exemple testé. Il faut que ta déclaration de fonction soit dans un
module et pas dans une classe.
Avec une forme et un commandButton

Private Sub Command1_Click()
Dim T() As Byte
T = F()

Dim I As Integer
For I = 1 To Ubound(T)
Debug.Print T(I)
Next

End Sub
Dans un module
Public Function F() As Byte()
Dim R(1 To 10) As Byte, I As Integer
For I = 1 To 10
R(I) = I
Next
F = R
End Function




Mea Culpa :-[ . Lu trop vite l'aide sur 'Impossible d'affecter au
tableau'. L'important, semble t-il est que le tableau 'T' soit
redimensionnable (dim T() au lieu de T(10) comme dans le code de
JGP_NoMail). La fonction peut se trouver dans un module, ou dans un code
de feuille, ça marche.


--
Cordialement,

Jacques.
Avatar
JGP_NoMail
>> Dim T() As Byte




^^
Ok Merci.