Bonjour à tous,

Je fais appel à vous car je souhaite insérer dans chaque cellule de la plage K4:K8 une fonction que j'ai créé et qui fonctionne. Cette fonction prend deux arguments: le premier sera une plage de cellule fixe à savoir E10:H10, jusqu'ici pas de problème. Mon problème vient du second argument de la fonction qui doit prendre une plage variable à savoir E4:H4 pour la cellule K4 puis E5:H5 pour la cellule K5 ... puis E8:H8 pour la cellule K8. Je n'arrive pas à définir cette plage variable à partir d'une boucle du type de celle que j'ai créé ici.

Voici donc mon code pour réaliser cette opération ainsi que le code de ma fonction:

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
30
31
32
33
34
35
36
37
Option Explicit
Option Base 1
 
Sub test()
Dim rend_pf() As Variant
ReDim rend_pf(5, 1)
 
Dim n, i As Integer
n=5
 
For i = 1 To n
 
Range("K" & i + 3).Select
 
ActiveCell.Formula = "=rend_pf(E10:H10,E & i+3 :H & i+3)"
 
Next i
 
End Sub
 
Function rend_pf(A As Range, B As Range)
Dim m, j As Integer
Dim rend As Double
 
m = B.Columns.Count
 
rend = 0
 
For j = 1 To m
 
rend = rend + A(1, j) * B(1, j)
 
Next j
 
rend_pf = rend
 
End Function
Merci par avance et bonne journée.

Cordialement.