Macro vs. SumProduct

  • Initiateur de la discussion Initiateur de la discussion Hilton
  • 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 !

H

Hilton

Guest
Bonjour à tous,

Après avoir passé la journée à me décarcasser sans avancer sur ma problèmatique, je me decide enfin à vous consulter afin d'avoir un feedback constructif et éclairé.

J'ai créé un document excel afin de contrôler une interface que j'utilise, et qui transfert les factures d'un système X à un système Y. Comme le serveur lag souvent, il arrive que j'obtienne des doublons et il est nécessaire que je les corrige manuellement 🙁

Comme sur le système Y les factures sont détaillées, il est nécessaire que j'applique la formule SUMPRODUCT afin de reconstituer les montants totaux et les comparer aux montants du système X.

Je souhaite automatiser cette formule via VBA car on parle d'une plage de données de plus de 500 lignes, et lorsque j'applique la formule à ces 200 à 500 lignes, Excel met trois plombes à afficher les résultat.

Cette formule est la suivante : "=SUMPRODUCT((C:C=A1)*B:B)".

Rien de bien compliqué pourtant.

J'ai bien essayé de passer par une macro du type :

Code:
Sub TOTAL()
    For i = 1 To 1000
    If Cells(i, 4) = " " Then
    Cells(i, 8).FormulaR1C1 = "=SUMPRODUCT((C[-5]=RC[-7])*C[-6])"
    End If
    Next i
End Sub

...mais c'est pareil, ça met beaucoup trop de temps à afficher les résultats de par la gestion de la formule.

Je souhaitais créer un petit code de type .Evaluate ou Worsheetfunction.SumProduct, mais je n'ai pas réussi à retranscrire ma formule. Votre aide, de quelque manière que ce soit, serait appreciée !

Je suis bien sûr disponible pour de plus amples infos. Merci !

Hilton
 
Re : Macro vs. SumProduct

Bonjour et bienvenu sur le forum,
Concernant ta demande, il est recommandé de joindre un petit fichier exposant ton attente. Cela fera gagner du temps à tout le monde et te permettra d'obtenir plus facilement de l'aide.
Concernant ta formule, à 1ère vue, travailler sur des colonnes entières (A:A, C:C) n'est pas recommandé et allonge considérablement le temps de traitement, donc il est préférable de nommer les plages de manière dynamique en utilisant la fonction DECALER.
Sinon passer par EVALUATE ou par une autre procédure est également possible mais sans fichier, difficile de te proposer une solution adaptée.
A+
 
Re : Macro vs. SumProduct

Concernant ta formule, à 1ère vue, travailler sur des colonnes entières (A:A, C:C) n'est pas recommandé et allonge considérablement le temps de traitement, donc il est préférable de nommer les plages de manière dynamique en utilisant la fonction DECALER.

Bonsoir David,

Je te remercie pour ton commentaire qui mine de rien m'a considérablement avancé. Effectivement, en travaillant sur une plage prédéfinie, le traitement est beaucoup moins long.

Je vais faire de plus amples recherches sur la fonction DECALER et adapter une Macro en EVALUATE.

Un grand merci.

Hilton

PS : Bien vue, ta signature 😱
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
25
Affichages
1 K
Réponses
3
Affichages
667
Réponses
6
Affichages
1 K
T
Réponses
8
Affichages
928
Thomexcel
T
Réponses
3
Affichages
1 K
T
Réponses
5
Affichages
1 K
Thomexcel
T
Retour