Bonjour le forum,

J'ai une feuille d'environ 4000 lignes et 50 colonnes (Bom Sans Doublons). Pour faire simple, j'aurais besoin d'écrire la formule suivante en G2 de ma feuille sans doublons:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
=SOMME.SI('BOM'!$A$2:$A$7446;'Bom Sans Doublons'!$A2;'BOM'!G$2:G$7446)
et de l'étirer sur 50 colonnes et 4000 lignes.

Comme vous pouvez l'imaginer, si je le fais manuellement, Excel plante sous la quantité de calculs.
J'ai essayé de passer par une variable tableau en adaptant le code que j'ai trouvé dans le tuto de Silkyroad (je fais l'essai sur une seule colonne).

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
Set wksBomSansDoublons = Worksheets("Bom Sans Doublons")
Set WsReBom = Worksheets("Bom")
LigFinBomSansDoublons = wksBomSansDoublons.[A65536].End(xlUp).Row
LigFinReBom = WsReBom.[A65536].End(xlUp).Row
Set rngReBom = WsReBom.Range("A1:A" & LigFinReBom)
 
Dim Montab As Variant, cmpt1 As Long, cmpt2 As Long
With wksBomSansDoublons
    Montab = .Range("G2:G" & LigFinBomSansDoublons).Value
    For cmpt1 = LBound(Montab, 1) To UBound(Montab, 1)
        For cmpt2 = LBound(Montab, 2) To UBound(Montab, 2)
            Montab(cmpt1, cmpt2) = WorksheetFunction.SumIf(rngReBom, .Cells(cmpt1, 1), WsReBom.Range("G2:G" & LigFinReBom))
        Next cmpt2
    Next cmpt1
    .Range("G2:G" & LigFinBomSansDoublons).Value = Montab
End With
La macro ne plante pas, mais j'ai comparé les résultats que me donne ce code avec ceux que me donne la fonction SOMME.SI sur une colonne, et j'ai des différences pour 1700 lignes sur 4000, et je ne sais pas pourquoi...
Est-ce que vous auriez une idée, ou une manière plus simple de faire?