Bonjour a tous,
L'objectif ici est de réaliser en VBA la formule sumproduct dans une feuille (GENERAL) avec un tableau présent dans une feuille différente (1100000498) .
Voici un exemple
Feuil1 = 1100000498
SKU QTY
XXXXX 200
YYYYY 400
SSSSS 300
XXXXX 400
YYYYY 600
SSSSS 150
.........
Feuil2 = GENERAL
SKU TOTAL
XXXXX 600
YYYYY 1000
SSSSS 450
Mon probleme ici est que je ne peux pas determiner a l'avance le nombre de ligne du tableau de la feuille '1100000498'
Apres de nombreuses recherches, j'ai pu realiser un code qui me permet de presque toucher au but:
Ce code me permet d'obtenir le resultat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Dim Template As String Template = Range("TMP_SO").Value 'definit le nom de la feuille (ici le nom est 1100000498) que je ne peux pas connaitre a l'avance Dim Wb As Worksheet Set Wb = ThisWorkbook.Worksheets(Template) Dim SKU As Long SKU = Wb.Cells(Rows.Count, "E").End(xlUp).Row + 1 ' colonne E = SKU Dim QTY As Long QTY = Wb.Cells(Rows.Count, "G").End(xlUp).Row + 1 'Colonne G = QTY ActiveCell.Formula = "=SUMPRODUCT(('1100000498'!E20:E" & SKU - 1 & "=RC[-3])*('1100000498'!G20:G" & QTY - 1 & "))"
E20:E22 correspond bien a la longueur du tableau de la feuille1 pour chacune des colonnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SUMPRODUCT(('1100000498'!'E20':'E22'=A2)*('1100000498'!'G20':'G22'))
Mais ce resultat me donne une erreur de type 'NAME' a cause des apostrophes en rouge.
Si je peux arriver a les enlever alors la formule fonctionne:
Que dois-je modifier dans mon code pour enlever ces apostrophes?
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SUMPRODUCT(('1100000498'!E20:E22=A2)*('1100000498'!G20:G22))
J'espère avoir ete clair et que vous pourrez m'aider.
Merci d'avance.
Cordialement.
Partager