Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

doublon supérieur a la somme de 8

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

a10

XLDnaute Impliqué
bonjour

j'ai des données dans l'onglet feuil

je vais dans l'onglet doublon et je met la date dans la cellule b3

je dois repérer tous les codes qui ont une somme supérieur à la celllue b1

pouvez vous m'aider avec une formule simple

a+
 

Pièces jointes

Re : doublon supérieur a la somme de 8

Re a10,

OK il faut sommer les doublons.

Pas de solution pour l'instant, je verrai si c'est possible demain.

Bonne nuit.
 
Dernière édition:
Re : doublon supérieur a la somme de 8

Bonjour a10, le forum,

Sur de grands tableaux les formules de la solution précédente prendront beaucoup de temps de calcul.

Ce code VBA est beaucoup plus rapide grâce au Dictionary et aux tableaux VBA :

Code:
Private Sub Worksheet_Activate()
Filtre [B1], [colA], [col], [A4]
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B1,B3]) Is Nothing Then _
  Filtre [B1], [colA], [col], [A4]
End Sub

Sub Filtre(critere&, colA As Range, col As Range, deb As Range)
Dim col1, col2, t(), d As Object, i&, n&
col1 = colA.Resize(colA.Count + 1) 'matrice, au moins 2 éléments
col2 = col.Resize(UBound(col1))
ReDim t(1 To UBound(col1), 1 To 2)
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(t) - 1
  If Not d.exists(col1(i, 1)) Then _
    d(col1(i, 1)) = Application.SumIf(colA, col1(i, 1), col) 'SOMME.SI
  If d(col1(i, 1)) > critere Then
    n = n + 1
    t(n, 1) = col1(i, 1)
    t(n, 2) = col2(i, 1)
  End If
Next
'---restitution---
If n Then deb.Resize(n, 2) = t
deb.Offset(n).Resize(Rows.Count - deb.Row - n + 1, 2).ClearContents
End Sub
Fichier joint.

Bonne journée et A+
 

Pièces jointes

Re : doublon supérieur a la somme de 8

Re,

Testé sur Win XP - Excel 2003 un tableau de seulement 300 lignes en feuille "feui" (colA ajusté à 300).

Les 2 x 300 formules du post #8 se recalculent en 7,2 secondes, ceci à chaque modification du classeur et à l'ouverture (les formules sont volatiles).

Le code du post #9 s'exécute lui entre 0,01 seconde (4 valeurs différentes en colonne A) et 0,03 seconde (300 valeurs différentes).

A+
 
Dernière édition:
Re : doublon supérieur a la somme de 8

Bonsoir à tous


Petite question au passage : Job75, comment fais tu pour connaitre le temps de calcul nécessaire ?

D'avance, merci.

@ plus
 
Re : doublon supérieur a la somme de 8

Bonsoir CISCO,

Petite question au passage : Job75, comment fais tu pour connaitre le temps de calcul nécessaire ?

Sur 300 lignes, pour les formules avec 7 en B1, exécuter :

Code:
Sub a()
Dim t
t = Timer
[B1] = ""
MsgBox timer - t
End Sub
et pour VBA faire une boucle dans la macro Filtre :

Code:
'----
Dim x , k
x = Timer
For k = 1 To 100
  n = 0
  '----
Next
MsgBox (Timer - x) / 100
End Sub
Exécuter le code en validant B1.

A+
 
- 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
7
Affichages
257
Réponses
18
Affichages
406
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…