XL 2016 Aide pour reperer codes et comptage

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

seb60200

XLDnaute Nouveau
Bonsoir !

J'explique ce que je souhaite , je pense que cela peut etre realisable j'espère que ca sera pas trop compliqué à comprendre:

Voici mon souhait comme vous pouvez le voir, dans le tableau de gauche j'ai des codes défauts (code1,code2,code3) avec les quantitées repéré a coté de chaque code
je souhaite avoir dans les colonnes respectives du tableau de droite les code 1 ,2 et 3 rassemblé dans la colonne "code def" et surtout avoir en face de chaque code regroupé la totalité des défaut relevé dans le tableau de gauche .

Merci pour vos conseil sur la méthode (formule,macro etc a utilisé pour ce souhait)

Une video arrive pour exprimer mieux ce que je souhaite Merci
 

Pièces jointes

Bonjour @seb60200 , bienvenue sur XLD 🙂,
Bonjour @Kar3ousse , bienvenue sur XLD 🙂,

Une autre version VBA surtout pour saluer une vieille connaissance: Bonjour R@chid 😉.
Le code est à placer dans le module de code de la feuille concernée:
VB:
Sub Consolider()
Const Base = "c4", Dest = "i4"
Dim t, i&, n&
  Application.ScreenUpdating = False
  Range(Dest).Resize(Rows.Count - Range(Dest).Row + 1, 2).Clear
  t = Range(Range(Base), Cells(Rows.Count, Range(Base).Column).End(xlUp)).Resize(, 4)
  For i = 1 To UBound(t): t(i, 1) = UCase(Trim(t(i, 1)) & Trim(t(i, 2)) & Trim(t(i, 3))): t(i, 2) = t(i, 4): Next
  With Range(Dest).Resize(UBound(t), 2)
    .Value = t
    .Sort key1:=.Range("a1"), order1:=xlAscending, Header:=xlNo
    t = .Value: n = 1
    For i = 2 To UBound(t)
      If t(i, 1) = t(n, 1) Then
        t(n, 2) = t(n, 2) + t(i, 2)
      Else
        n = n + 1: t(n, 1) = t(i, 1): t(n, 2) = t(i, 2)
      End If
    Next i
    .Clear: .Resize(n).Value = t
    .Resize(n).Borders.LineStyle = xlContinuous
  End With
End Sub
 

Pièces jointes

Dernière édition:
Bonsoir seb60200,
Voici le fichier ,j'espere ce que tu veux faire

Excellente soirée

Par contre petite question quand je veux mettre l'ordre decroissant sur le tableau de droite ca ne fonctionne pas c'est a dire je clique sur trie et du plus grand au plus petit rien ne se passe es ce normal ?

Merci


Au passage je remerci tous ce qui m'ont envoyé une reponse rapide que ce soit VBA (super solution) que je garde également sous la main mais ne maitrisant pas trop VBA d'ailleurs au passage si tu pouvais également m'expliquer comment as tu fais je suis preneur je sais s'est peut etre long mais ca me permet d'apprendre un peu 🙂
 
Bonjour @ tous,
Bonjour Ce lien n'existe plus , Bonjour Job75
ça fait longtemps que l'on s'est pas croisé sur une discussion, je suis désolé pour cette absence dont aucune excuse ne pourrait totalement justifier.

Une formule matricielle nécessite une validation spéciale, une fois que la formule est en mode édition, tu maintiens les deux touches Ctrl+Shift enfoncées et tu tapes la touche Enter.
Pour la formule, je l'ai faite un peu compliquée pour pourvoir extraire les codes sans doublon et triés par ordre alphabétique croissant.
Merci de lire ce que propose Excel dans la rubrique d'aide afin de mieux comprendre les fonctions utilisées pour constituer cette formule.


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