VBA - Pb avec syntaxe de sumproduct

NeMoS

XLDnaute Junior
Bonjour le Forum, bonjour à tous,

Voilà, je cherche dans deux colonnes différentes le nombre d'occurrence d'une combinaison x,y où x est une valeur de la colonne 1 et y de la colonne 2.

Sauf que tout est variable :)

J'ai utilisé sumproduct mais cela me renvoit #NAME, il doit y avoir une belle erreur de syntaxe mais je n'arrive pas à mettre la main dessus.

Voici une partie du code que j'ai commenté afin qu'il soit plus clair (du moins je l'espère).

Je vous remercie par avance de cotre aide, je sais que ce n'est pas facile de rentrer dans le code - et la tête- de quelqu'un d'autre !

NeMoS

Code:
'Ce bout de code fait partie d'une procédure, appellée ensuite par des macros qui donneront une valeur à country
' et techno
' il fait appel à deux feuille différentes



fintableau = Sheets(techno & "_" & country).Cells(7, Cells.Columns.Count).End(xlToLeft).Column

' techno et country sont des variables définies en string
'le tableau a un certain nombre de colonnes qui varie en fonction des valeur techno et country
' cette partie se trouve ailleurs dans le code

finmx = Sheets("PRODUCT KNOWLEDGE").Range("A" & Rows.Count).End(xlUp).Row
i = 2

'ceci est le second tableau dont le nombre de ligne varie


'la macro scanne chaque colonne de la ligne 7 du tableau de la feuille techno_country, récupère la valeur puis
'va chercher cette valeur dans un autre tableau d'une autre feuille (PRODUCT KNOWLEDGE)
'lorsque que la colonne (dans le second tableau) correspondant à cette valeur est récupérée, la macro la scanne,
'y recherche la valeur 1 et recoupe avec la valeur country d'une autre colonne du même tableau
'le but du jeu étant de compter le nombre de fois qu'apparrait la combinaison country/1 et de noter le résultat
' dans une cellule de la feuille techno_country

For i = 2 To fintableau
valeur = Sheets(techno & "_" & country).Cells(7, i).Value
       Set r = Sheets("PRODUCT KNOWLEDGE").Rows(2).Find(valeur, , xlValues, xlWhole)
       If Not r Is Nothing Then col = r.Column
          
        With Sheets("PRODUCT KNOWLEDGE")
            Set Level = .Range(.Cells(3, col), .Cells(finmx, col))
            Set geo = .Range(.Cells(3, 3), .Cells(finmx, 3))
        End With

'comptage des données et remplissage du tableau
Sheets(techno & "_" & country).Cells(8, i) = Evaluate("=SUMPRODUCT(('PRODUCT KNOWLEDGE'!" & geo.Address & " = " & country & ")*('PRODUCT KNOWLEDGE'!" & Level.Address & "=1))")
 

Discussions similaires

Réponses
22
Affichages
743

Statistiques des forums

Discussions
312 104
Messages
2 085 346
Membres
102 868
dernier inscrit
JJV