Fonction Sommeprod à 3 variables pour vba
Résolu/Fermé
Praljm
Messages postés
43
Date d'inscription
jeudi 24 janvier 2013
Statut
Membre
Dernière intervention
26 octobre 2024
-
28 avril 2014 à 10:22
Praljm Messages postés 43 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 - 6 mai 2014 à 10:17
Praljm Messages postés 43 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 - 6 mai 2014 à 10:17
A voir également:
- Fonction Sommeprod à 3 variables pour vba
- Fonction si et - Guide
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Ai suite 3 download - Télécharger - Optimisation
5 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
28 avril 2014 à 14:00
28 avril 2014 à 14:00
Bonjour,
Sommeprod étant une vraie-fausse formule matricielle, cela sera effectivement très long
je regarde une solution "rapide"
mais si tu pouvais joindre un extrait de ton classeur (1000 lignes )
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Sommeprod étant une vraie-fausse formule matricielle, cela sera effectivement très long
je regarde une solution "rapide"
mais si tu pouvais joindre un extrait de ton classeur (1000 lignes )
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 28/04/2014 à 16:53
Modifié par michel_m le 28/04/2014 à 16:53
Essai 2500 lignes toutes colonnes remplies:
1 tableau=0,25 sec
Essai 8000 lignes
4 tableaux= 0,125 sec
code 4 tableaux
En espèrant que Praljm daigne bien faire signe....
Michel
1 tableau=0,25 sec
Essai 8000 lignes
4 tableaux= 0,125 sec
code 4 tableaux
Option Explicit
'ma formule excel à convertir => =SOMMEPROD((A2:A27=1)*(D27:D27=380341)*(P2:P27="Eau")*(S2:S27))
Sub sommeprod()
Dim Derlig As Integer, T_a(), T_d(), T_p(), T_s(), Idx As Integer, Somme As Double
Dim start As Single
start = Timer
Derlig = Columns("A").Find("*", , , , , xlPrevious).Row
With Application
.ScreenUpdating = False
T_a = .Transpose(Range("A2:A" & Derlig))
T_d = .Transpose(Range("D2:D" & Derlig))
T_p = .Transpose(Range("P2:P" & Derlig))
T_s = .Transpose(Range("S2:S" & Derlig))
End With
For Idx = 1 To UBound(T_a)
If T_a(Idx) = 1 Then
If T_d(Idx) = 380341 Then
If T_p(Idx) = "Eau" Then Somme = Somme + T_s(Idx)
End If
End If
Next
Cells(Derlig + 1, "A") = Somme
Application.ScreenUpdating = True
MsgBox "Calcul sur " & Derlig & " lignes effectué en : " & Timer - start & " Sec."
End Sub
En espèrant que Praljm daigne bien faire signe....
Michel
Praljm
Messages postés
43
Date d'inscription
jeudi 24 janvier 2013
Statut
Membre
Dernière intervention
26 octobre 2024
29 avril 2014 à 09:00
29 avril 2014 à 09:00
Bonjour,
Merci pour la réponse que je vais essayer de mettre en pratique.
Cordialement.
Merci pour la réponse que je vais essayer de mettre en pratique.
Cordialement.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
2 mai 2014 à 11:24
2 mai 2014 à 11:24
Merci ?
Encore quelqu'un de correct ...
Décourageant....
Encore quelqu'un de correct ...
Décourageant....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Praljm
Messages postés
43
Date d'inscription
jeudi 24 janvier 2013
Statut
Membre
Dernière intervention
26 octobre 2024
6 mai 2014 à 10:17
6 mai 2014 à 10:17
Bonjour et merci pour toutes les propositions de programmation.
J'ai commencé à batir le futur fichier...
Bien cordialement,
A bientôt
J'ai commencé à batir le futur fichier...
Bien cordialement,
A bientôt
28 avril 2014 à 14:20
Non testé
Mais suivant la structure de ton tableau, il serait peut-^tre + efficace de passer par 4 tableaux au lieu d'un (1 tableau par colonne: A, D,P,S)
28 avril 2014 à 14:28
en environ 0,1 seconde avec 512 Mo RAM, Proc 3ghz celeron