Bonjour,
Je suis débutant en VBA, ceci dit je cherche ici à calculer l'étendue d'une plage ip en fonction du masque. J'essaye d'utiliser le passage de valeur par référence.
Normalement si tout se passe bien, les valeurs passées en paramètre devraient être modifiées ou pas par la fonction après exécution.
Par exemple "=range(A1;B1;C1;D1;E1)"
Cela ne devrait-il pas modifier directement ces cellules après exécution ? Car cela ne fait que m'afficher 0 dans la cellule où est appelée la fonction. Les cellules A1-D1 qui devraient être modifiées, elles restent égales à elles-mêmes.
Merci d'avance.
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 Function Range( ByRef o1, ByRef o2, ByRef o3, ByRef o4, m As Integer ) If (24 <= m And m < 32) Then o4 = o4 + 2 ^ (32 - m) - 1 End If If (16 <= m And m < 24) Then o3 = o3 + 2 ^ (24 - m) - 1 o4 = 255 End If If (8 <= m And m < 16) Then o2 = o2 + 2 ^ (16 - m) - 1 o3 = 255 o4 = 255 End If If (1 <= m And m < 8) Then o1 = o1 + 2 ^ (8 - m) - 1 o2 = 255 o3 = 255 o4 = 255 End If End Function
Partager