Macrc pour remplacer des SommeProd

jlbcall

XLDnaute Occasionnel
Bonjour à tous,

Je me lance dans le VBA et je rencontre déjà pour soulager un énorme fichier des soucis.
Ci-joint un exemple (très réduit de mon problème)
J'ai un classeur avec sur le premier onglet nommé "UO" ma base de donnée qui part de B5 à U8000
à travers les autres onglets (1-2-3 .....) je dois retrouver des valeurs la formule au départ SommeProd me convenais parfaitement.
Le fichier grandissant le calcul devenait dans Excel très laborieux sans macro.
Dans un 1er temps j 'ai donc juste fait une macro qui copiait collé ma formule sur la zone nécessaire + un copier coller-valeur pour soulager le fichier.
Mais cette macro est très lente car le calcul se refait sur chaque onglet.

Je cherche une macro capable de calculer "instantanément" sur chaque onglet l'équivalent de la formule sommesprod en fonction de mes critères.
Dans le fichier ci-joint des tentatives non réussite + les formules sommeProd comme exemple de critère.
si quelqu'un de vous à un fichier dans ce genre je suis preneur
Merci à tous bonne journée
Jlbcall
 

Pièces jointes

  • Classeur1.xlsm
    32.9 KB · Affichages: 63
  • Classeur1.xlsm
    32.9 KB · Affichages: 67
  • Classeur1.xlsm
    32.9 KB · Affichages: 67

Nairolf

XLDnaute Accro
Re : Macrc pour remplacer des SommeProd

Salut jlbcall,salut le forum,

Essaie avec le code suivant, c'est plus rapide que les copier/coller, mais il y a quand même du temps traitement proportionnel au nombre de cellules à traiter.

Code:
Sub Calcul()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'active le calcul manuel dans les options d'Excel
Dim Onglet(4)
Onglet(2) = "1"
Onglet(3) = "2"
Onglet(4) = "3"

For x = 2 To 2
    For i = 11 To 18
        For j = 5 To 11
            Worksheets(Onglet(x)).Cells(i, j).FormulaR1C1 = "=SUMPRODUCT(N(UO!R7C2:R8000C2=R4C)*(UO!R7C9:R8000C9=RC4)*(UO!R7C13:R8000C13))*R5C"
        Next j
    Next i
Next x

End Sub

En espérant avoir répondu à ta demande.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260