XL 2013 [VBA] Worksheetfunction SUMPRODUCT

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 !

Mjgreg67

XLDnaute Junior
Hello le forum

Cela fait maintenant 2H que je me casse la tête à faire fonctionner une formule VBA qui ne me semble pas si complexe que cela...


Dans mon fichier originial des SOMMEPROD mais le fichier en question rame beaucoup.
C'est pourquoi j'ai décidé de passer sous VBA. Cela semble être beaucoup plus rapide car le calcul ne se fait pas en instantané.

En PJ un exemple de ce que je souhaite faire. Je me suis d'ailleurs permis la formule SOMMEPROD qui fonctionne.

J'aimerai connaitre mon coût total pour l'achat et la vente de bois (dans l'exemple je n'ai que fait pour la vente...)

Les conditions sont les suivantes :

Réalise moi la somme en produit lorsqu'en colonne A les dates sont entre le 01/01/2017 et 02/01/2017 et qu'en colonne B il y a la mention "BOIS" et en colonne D la mention "VENTE".

Vous retrouverez mon code VBA dans le module 1 sous le nom "SUB TESTER ()".
Ce dernier m'affiche dans un msgbox la réponse 0. Je n'arrive pas à comprendre pourquoi...

Je ne souhaite pas passer par FORMULA .

Quelqu'un peut m'aider à trouver la bonne formule ?

Merci !
 

Pièces jointes

Au top cela fonctionne !🙂

Une autre technique a été trouvé aussi :

Dim F1 As Range
Dim i As Integer
Dim s As Double
Dim Vente As Double
Dim Achat As Double
Dim DernLigne As Long
Application.Calculation = xlCalculationManual
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Set F1 = Sheets("Feuil1").Range("A1:A" & DernLigne)
montant = 0
s = 0
For i = 1 To F1.Rows.Count
If F1(i, 1) >= Cells(2, 8) And F1(i, 1) <= Cells(2, 9) And F1(i, 2) = "BOIS" And F1(i, 4) = "VENTE" Then
s = F1(i, 3) * F1(i, 5)
Vente = Vente + s
End If
If F1(i, 1) >= Cells(2, 8) And F1(i, 1) <= Cells(2, 9) And F1(i, 2) = "BOIS" And F1(i, 4) = "ACHAT" Then
s = F1(i, 3) * F1(i, 5)
Achat = Achat + s
End If
Next i
Cells(4, 9) = Vente
Cells(5, 9) = Achat
Application.Calculation = xlCalculationAutomatic
 
- 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
15
Affichages
624
Réponses
1
Affichages
165
Réponses
7
Affichages
467
Réponses
4
Affichages
316
Réponses
7
Affichages
305
Retour