Générer une liste alphabétique automatique à partir de 2 listes

Soda33127

XLDnaute Nouveau
Bonjour,

Je suis à la rechercher d'une formule me permettant d'obtenir une liste globale alphabétique, à partir d'autres listes déjà faites. Mon problème est que je voudrais que la liste globale se mette à jour automatiquement si je change ou rajoute des noms dans les premières listes.
Pensez-vous cela possible ?
Je vous remercie
 

CISCO

XLDnaute Barbatruc
Re : Générer une liste alphabétique automatique à partir de 2 listes

Bonsoir à tous, bonjour J.B.

Le début du travail en pièce jointe. Il y a certainement le moyen de faire plus compréhensible. Pour le moment, Cf. la pièce jointe, avec une colonne C donnant la liste totale dans le désordre, et une colonne D donnant la liste dans l'ordre alphabétique. J'aimerai bien trouver une solution sans avoir à écrire la colonne C.

@ plus
 

Pièces jointes

  • Soda.xlsx
    10.7 KB · Affichages: 56

Soda33127

XLDnaute Nouveau
Re : Générer une liste alphabétique automatique à partir de 2 listes

Bonsoir Mutzik,
Désolé de n'avoir pas été assez précis. Je joins un petit fichier exemple. j'ai des listes de classes avec noms et prénoms et je voudrais obtenir une liste globale de tous les élèves qui soit triée par ordre alphabétique, avec doublons. Et quand je change ou que je rajoute une ligne dans les listes de classe, il faudrait (!ça serait super !) que ma liste générale change aussi.
Voilà, voilà.
PS ; J'ai posé cette question sur un autre forum et je me suis fait "houspillé" de l'avoir posée aussi ici.
Dur de bien faire quand on ne connaît pas toutes les règles.
Cordialement.
Soda 33127
 

Pièces jointes

  • Listes alphabétiques automatiques.xlsx
    10.1 KB · Affichages: 52

Soda33127

XLDnaute Nouveau
Re : Générer une liste alphabétique automatique à partir de 2 listes

Bonsoir Cisco,
Effectivement, c'est super et ce serait parfait pour moi si je n'avais pas 2 colonnes (le nom en même temps que le prénom à trier).
Merci quand même, je vais essayer de concaténer les deux pour n'obtenir qu'une colonne.
Merci aussi à Boisgontier pour ses solutions proposées.
Je vous tiens au courant.
A+
Soda33127
 

Soda33127

XLDnaute Nouveau
Re : Générer une liste alphabétique automatique à partir de 2 listes

Bonsoir JB,
Exactement ce que je recherche !!! C'est super !
Seulement après avoir fait sur une autre feuille excel dans un autre classeur ce que tu m'as montré, j'ai le message
dièse NOM? sur toute la plage dès que je rentre la formule matricielle.
Y a t' il quelque chose à faire avant d'utiliser "= ListeTriée()" ?
Ensuite promis je ne vous embête plus, tant pis je ferai ça à la main.
Soda 33127
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Générer une liste alphabétique automatique à partir de 2 listes

Sans nom de champ (Voir PJ)

Il faut créer un module (Alt+F11) puis Insertion/Module et Copier/Coller du code

Code:
Function ListeTriée(champ)
  Application.Volatile
  Set mondico = CreateObject("Scripting.Dictionary")
  n = 0
  For i = 1 To champ.Areas.Count      ' parcours des zones du champ multi-zones
    n = n + champ.Areas(i).Count
    For j = 1 To champ.Areas(i).Count ' parcours des éléments d'une zone
      If champ.Areas(i)(j) <> "" And champ.Areas(i)(j) <> "." Then
        x = champ.Areas(i)(j)
        mondico.Item(x) = x      ' ajout au dictionnaire (doublons éliminés)
      End If
    Next j
  Next i
  temp = mondico.items           'transfert dictionnaire dans une table temp()
  Call Tri(temp, LBound(temp), UBound(temp))   ' tri optionnel
  Dim d():  ReDim d(n)           ' table pour retour
  For i = LBound(temp) To UBound(temp):  d(i) = temp(i): Next i
  ListeTriée = Application.Transpose(d)
End Function

'http://boisgontierjacques.free.fr/pages_site/TriQuickSort.htm
Sub Tri(a, gauc, droi) ' Quick sort
  ref = a((gauc + droi) \ 2)
  g = gauc: d = droi
  Do
   Do While a(g) < ref: g = g + 1: Loop
   Do While ref < a(d): d = d - 1: Loop
   If g <= d Then
    tmp = a(g): a(g) = a(d): a(d) = tmp
    g = g + 1: d = d - 1
   End If
  Loop While g <= d
 If g < droi Then Call Tri(a, g, droi)
 If gauc < d Then Call Tri(a, gauc, d)
End Sub

Function RechercheMZ(valCherchée, champRech As Range, ChampRetour)
  Application.Volatile
  For i = 1 To champRech.Areas.Count
    For j = 1 To champRech.Areas(i).Count
      If valCherchée = champRech.Areas(i)(j) Then
        RechercheMZ = ChampRetour.Areas(i)(j)
        Exit Function
      End If
    Next j
  Next i
  RechercheMZ = "pas trouvé"
End Function

JB
 

Pièces jointes

  • Copie de Listes alphabétiques automatiquesSansNomsChamp.xlsm
    22 KB · Affichages: 55
Dernière édition:

Soda33127

XLDnaute Nouveau
Re : Générer une liste alphabétique automatique à partir de 2 listes

JB Merci beaucoup pour ta patience et ton efficacité
Ca y est, cela fonctionne et c'est super ! Cela va même plus loin que je ne l'espérais.

Ce forum est génial et merci à tous pour votre aide.
Joyeux Noël
Soda 33127
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16