Bonjour
Je souhaite établir un tableau à partir d'une liste, sans avoir recours à un TCD, car j'ai l'intention de manipuler les données ou tout simplement à y mettre un filtre.
J'ai construis une formule excel qui va bien
Je voudrais par une macro envoyer les données dans le tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SOMMEPROD((NB.SI($A2;Data!$B$3:$B$65500)=1)*(NB.SI(B$1;Data!$A$3:$A$65500)=1)*Data!$C$3:$C$65500)
Je cherche donc à mettre au point cette macro, j'ai repris une macro que j'essaye d'adapter et là je bloque j'ai besoin de vous à ce stade.
Je joins un fichier, pour test
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 Sub Fill() Dim r As Range Dim NbLigne As Long Dim NbColonne As Long Dim value As Double Dim SommeProd As Variant Dim PlageCompte As objPlageDeComptes Dim ListePlageComptes As New objListePlageDeComptes NbLigne = Sheets("Data").[A1].CurrentRegion.Rows.Count ' NbColonne = Sheets("Résultat").Range("A1").End(xlToRight).Column For Each r In Sheets("Résultat").Range("A2:A" & NbLigne) ListePlageComptes.Clear ListePlageComptes.Init (r.Offset(0, 2).value) value = 0 For Each PlageCompte In Sheets("Résultat").Range("A:NbColonne" & 1) SommeProd = Evaluate("sumproduct((COUNTIFI($A2;Data!$B$3:$B$65500)=1)*(NB.SI(B$1;Data!$A$3:$A$65500)=1)*Data!$C$3:$C$65500)") If IsNumeric(SommeProd) Then value = value + SommeProd Next PlageCompte ThisWorkbook.Worksheets(r.value).Range(r.Offset(0, 1).value) = value Next r
Merci de votre aide
Christian
Edit modifié dans la formule SOMMEPROD en sumproduct & NB.SI en COUNTIFI
Partager