Bonjour,
Je cherche a convertir une macro en fonction.
Loin d'etre un pro de la programmation, j'aurai besoin d'un coup de main ...
La macro fonctionne, mais quand j'essaye de la convertir, j'ai une erreur "#valeur!"
Pour info, la macro calcul le CRC16 d'une table de caracteres.
Ci dessous le code "transformé"
D'avance, merci de votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 '------------------------------------------------- Public Function ModCRC(Buffer() As Variant) As Long '------------------------------------------------- Dim CRC1 As Variant Dim J As Integer Dim K As Long Dim c As Long Dim l As Long Application.Volatile CRC1 = &HFFFF ' init CRC For l = 1 To UBound(Buffer) ' pour chaque mot (2 octets par mot) c = 1 ' init index colonne While c < 3 CRC1 = CRC1 Xor Buffer(l, c) For J = 0 To 7 ' pour chaque bit dans l'octet K = CRC1 And 1 ' memorisation du bit de poid faible CRC1 = ((CRC1 And &HFFFE) / 2) And &H7FFF ' decalage à droite apres masquage du bit de poid faible If K > 0 Then CRC1 = CRC1 Xor &HA001 Next J ' bit suivant c = c + 1 Wend Next l ' mot suivant ModCRC = CRC1 End Function
Partager