Macrc pour remplacer des SommeProd

  • Initiateur de la discussion Initiateur de la discussion jlbcall
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
163
Retour