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

bonjour

j'ai pris le classeur de monique et cela fonctionne

maintenant j'ai essayé de mettre le nom qui correspond au code

dans l'onglet feui colonne B j'ai le nom
et je voudrai rajouter pour les doublons a côté du code le nom dans l'onglet doub

j'ai décalé les formules pour me laisser la colonne pour les noms mais je n'arrive pas à trouver le nom

a+
 
Re : doublon supérieur a la somme de 8

Bonjour a10,

Comme je l'ai montré les formules avec SOMME.SI prennent trop de temps dès que le tableau dépasse une centaine de lignes.

Il n'est pas difficile d'adapter le code VBA au nombre de colonnes que l'on veut :

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

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

Sub Filtre(critere&, colA As Range, colB As Range, col, deb As Range)
Dim col1, col2, col3, t(), d As Object, i&, n&
If IsError(col) Then GoTo 1
col1 = colA.Resize(colA.Count + 1) 'matrice, au moins 2 éléments
col2 = colB.Resize(UBound(col1))
col3 = col.Resize(UBound(col1))
ReDim t(1 To UBound(col1), 1 To 3)
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) = col2(i, 1)
    t(n, 2) = col1(i, 1)
    t(n, 3) = col3(i, 1)
  End If
Next
'---restitution---
If n Then deb.Resize(n, 3) = t
1 deb.Offset(n).Resize(Rows.Count - deb.Row - n + 1, 3).ClearContents
End Sub
Edit : comme on voit, j'ai ajouté un test pour le cas où la date en C3 qui définit col n'est pas trouvée.

Fichier (2).

A+
 

Pièces jointes

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

Bonjour,

Ou bien tu donnes un nom à ta plage de noms
ColNom =DECALER(ColA;;1)
et la formule peut être :
=SI(ESTERR(A4);"";INDEX(ColNom;EQUIV(A4;ColA;0)))

Ou bien tu te sers de la plage nommée "ColA" et tu mets un Decaler() dans la formule
=SI(ESTERR(A19);"";INDEX(DECALER(ColA;;1);EQUIV(A19;ColA;0)))

 

Pièces jointes

- 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
Retour