Bonsoir,

Je souhaite créer une fonction qui effectue le traitement suivant :

MaFunction(plage,searchwhat,numcolonne)

Plage correspond à une plage de cellule et numcolone à un numéro de colonne contenant les valeurs dans la plage de cellules selectionnée.
serachwhat correspond à une clé à trouver dans la plage de données.

par exemple

VAR1 TOTO 4
VAR2 TITI 4
VAR3 TOTO 3
VAR1 FFF 2
VAR2 RRR 5

Ma fonction aura en paramètre la plage de cellule allant de VAR1 (en haut à gauche) à 5 en bas à droite et la valeur 3 correspondant à la 3eme colonne puisque c'est elle qui contient les valeurs.

le but est d'avoir à la sortie :
VAR1 6 (4+2)
VAR2 9 (4+5)
var3 3 (3)

J'ai donc crée une fonction qui devait lire une plage de donnée, repérer les valeurs de la plage et faire les somme des chiffres correspondant

peut être qu'avec les formule excel c'est possible mais je n'y arrive pas.

j'ai fait ceci :


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 grade2(PlageACopier As Range, what)
 
Dim numberofcellulle As Integer
numberofcellulle = PlageACopier.Count
 
Dim nb As Integer
nb = 0
 
Dim i As Integer
Dim j As Integer
 
For i = 0 To PlageACopier.Columns.Count
 
    For j = 0 To PlageACopier.Rows.Count
    Dim s As String
 
    If s = PlageACopier.FormulaR1C1(i + 1, j + 1) Then
        nb = nb + 1
    End If
 
    Next j
Next i
 
garde2 = nb
End Function
mais mon "if" ne fonctionne pas, je ne parvient pas à récupérer les valeurs de mes cellules. Parfois je récupére la formule et ça ne me convient pas non plus. J'ai essayé Value à la place de FormulaR1C1 mais sans succés

Merci pour votre aide.