Liste triée - mise à jour

ntan-évindi

XLDnaute Occasionnel
Bonjour à toutes et à tous,

Sachant que dans la colonne B, j'ai une liste de nom, dans la plage B2:B300, que chaque nom revient plusieurs fois (Exemple 4 fois pour Dupont, 3 fois pour Durant etc.)
Que ma liste commence à étre alimentée en début de mois et évolue par ajour de nouveaux noms chaque jour;

Comment puis-je avoir en colonne A une liste triée sans doublon et qui se mette à jour à chaque ajout de noms en colonne B.

D'avance je vous remercie si vous avez une idée à me proposer.

Cordialement.
Ntang
 

Pièces jointes

  • Somme plusieurs colonnes.xls
    13.5 KB · Affichages: 48

Efgé

XLDnaute Barbatruc
Re : Liste triée - mise à jour

Bonjour ntan-évindi,
Une proposition (Merci J.B)
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Set Dico = CreateObject("Scripting.Dictionary")
For Each c In Range("D4:D" & Cells(Rows.Count, 4).End(xlUp).Row)
   Dico(c.Value) = c.Value
Next c
Cells(4, 1).Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
Range(Cells(4, 2), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 2)).FormulaLocal = "=SOMMEPROD(($D$4:$D$27=A4)*$E$4:$H$27)"
End Sub
Cordialement
 

Pièces jointes

  • Somme_plusieur_colonnes(2).xls
    17 KB · Affichages: 51
Dernière édition:

david84

XLDnaute Barbatruc
Re : Liste triée - mise à jour

Bonjour,
ci-joint proposition.
A+
Edit :bonjour Efgé
Une autre possibilité en utilisant Fréquence à la place de nb.si(plage;critère)=0 :
Code:
=SI(LIGNES($1:1)<=SOMME(1/NB.SI(noms;noms));INDEX(noms;EQUIV(PETITE.VALEUR(SI(FREQUENCE(EQUIV(noms;noms;0);EQUIV(noms;noms;0))>0;NB.SI(noms;"<"&noms));LIGNES($1:1));NB.SI(noms;"<"&noms);0));"")
Validation matricielle.
Fichier modifié.
 

Pièces jointes

  • Copie de Somme plusieurs colonnes-1-1.xls
    30 KB · Affichages: 53
Dernière édition:

Softmama

XLDnaute Accro
Re : Liste triée - mise à jour

Avec ajout de collections :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim PasDoublon As New Collection
Application.StatusBar = Target.Address
On Error Resume Next
Application.EnableEvents = False
A = Range([B1], [B65536].End(xlUp)).Value 'prend en compte la colonne B
' Boucle pour récupérer la collection d'items uniques
For j = 1 To UBound(A, 1)
     PasDoublon.Add A(j, 1), CStr(A(j, 1))
Next j
[A:A].ClearContents
For Each c In Range([A1], [A1].Offset(PasDoublon.Count - 1, 0))
    [A1].Offset(c.Row - 1, 0) = PasDoublon(c.Row)
Next
On Error GoTo 0
Application.EnableEvents = True
End Sub
 
Dernière édition:

Monique

Nous a quitté
Repose en paix
Re : Liste triée - mise à jour

Bonjour,

Une autre formule matricielle, (à valider par ctrl, maj et entrée)
soit au conditionnel,
soit associée à un format conditionnel.

Plages nommées (Insertion – Nom – Définir)
Pas de cellules vides entre les noms.

Edit
Aïe ! C'est la même que David84 en plus long...
 

Pièces jointes

  • ListeAlphaStanevindi.zip
    5 KB · Affichages: 37
Dernière édition:

ntan-évindi

XLDnaute Occasionnel
Re : Liste triée - mise à jour

Bonsoir à toutes et à tous,

Merci à tous de vos réponses, j'y ai trouvé mon bonheur, les formules pour mon fichier personnel et la macro pour le fichier à disposition des différents services.
Encore merci et bravo.
Cordialement.
Ntang
 

david84

XLDnaute Barbatruc
Re : Liste triée - mise à jour

Re

Pour mon éducation VBA, je pense qu'en modifiant le code de Efgé comme cela, on obtient également le tri demandé ( mais corrigez-moi si je me trompe !) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Set Dico = CreateObject("Scripting.Dictionary")
For Each c In Range("D4:D" & Cells(Rows.Count, 4).End(xlUp).Row)
   Dico(c.Value) = c.Value
Next c
Cells(4, 11).Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
[B]Range(Cells(4, 11), Cells(Cells(Rows.Count, 11).End(xlUp).Row, 11)) _
.Sort key1:=[K4], Order1:=xlAscending, Header:=xlNo[/B]
Range(Cells(4, 12), Cells(Cells(Rows.Count, 11).End(xlUp).Row, 12)) _
.FormulaLocal = "=SOMMEPROD(($D$4:$D$27=K4)*$E$4:$H$27)"
End Sub

Code:
Aïe ! C'est la même que David84 en plus long...
Pas grave Monique, d'autant que c'est toi qui me l'as apprise;)
A+
 

ROGER2327

XLDnaute Barbatruc
Re : Liste triée - mise à jour

Bonjour à tous
Je l'ai fait à petite vitesse... Mais puique c'est fait, je livre.​
ROGER2327
#4363


Lundi 16 Haha 138 (Saint Vadrouille, emblème, SQ)
30 Vendémiaire An CCXIX
2010-W42-4T15:55:15Z
 

Pièces jointes

  • liste_déroulante_dynamique_4363.xls
    22.5 KB · Affichages: 58

Discussions similaires

Statistiques des forums

Discussions
312 520
Messages
2 089 293
Membres
104 090
dernier inscrit
steve60350