Microsoft 365 Liste alphabétique

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

ff145bv

XLDnaute Junior
Bonjour,
J'ai deux listes alphabétiques sur deux colonnes distinctes, toutes deux pouvant accueillir au maximum 20 noms (mais parfois moins).
Je voudrais ne constituer qu'une seule liste alphabétique à partir de ces deux listes, sachant donc qu'il est tout à fait possible que chaque liste contienne moins de 20 noms.
Or je m'emmêle depuis deux jours avec les formules PETITE.VALEUR, NB.SI, INDEX, EQUIV.
Pourriez-vous m'aider ?
Merci infiniment par avance pour votre aide et votre talent.
 
Bonjour,
Supposant les deux zones (A1:A20) et (B1:B20) (remplies ou non)
En C1 :
VB:
=LET(a;ASSEMB.V(A1:A20;B1:B20);TRIER(UNIQUE(FILTRE(a;a<>""))))

Ou
Code:
=TRIER(UNIQUE(FILTRE(ASSEMB.V(A1:A20;B1:B20);ASSEMB.V(A1:A20;B1:B20)<>"")))

Nota, Unique peut être supprimé s'il n'y a pas de doublons
 
Merci infiniment. Je découvre plein de fonctions que je n'utilise jamais.
Je vais finalement utiliser votre deuxième proposition car la première se conclue par "Propagation".
Encore un grand merci !
Re-,
si la première se conclue par "Propagation", c'est parce qu'elle n'a pas assez de cellules dessous pour se "propager"
Libère les cellules dessous, ou mets cette formule dans une autre cellule disposant d'au moins 40 (max) cellules vides dessous
Bonne journée
 
Bonjour à tous,

Ne pas oublier que VBA est toujours là pour apporter une solution :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim P As Range, n&
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
With ActiveSheet
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    Set P = .UsedRange
    P.Columns(4).Offset(1).ClearContents 'RAZ
    n = P.Rows.Count
    P(2, 4).Resize(n) = P.Columns(1).Offset(1).Value 'copie les valeurs
    P(2 + n, 4).Resize(n) = P.Columns(2).Offset(1).Value 'copie les valeurs
    With P(2, 4).Resize(2 * n)
        .Sort .Cells, xlAscending, Header:=xlNo 'tri de la 4ème colonne
        .RemoveDuplicates 1, xlNo 'supprime les doublons
        .SpecialCells(xlCellTypeBlanks).Delete xlUp 'supprime les cellules vides
    End With
    .UsedRange 'actualise la barre de défilement verticale
End With
Application.EnableEvents = True 'réactive les évènements
End Sub
La macro est dans le code de la feuille et s'exécute quand on modifie ou valide une cellule quelconque.

A+
 

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

N
Réponses
24
Affichages
4 K
Nico17620
N
M
Réponses
5
Affichages
2 K
M. Chollet
M
B
Réponses
5
Affichages
1 K
Bullrot
B
K
Réponses
38
Affichages
10 K
kinders59
K
C
Réponses
3
Affichages
2 K
claivier_58
C
C
Réponses
1
Affichages
2 K
claivier_58
C
A
Réponses
15
Affichages
2 K
Arthur93
A
G
Réponses
3
Affichages
751
gaetan2812
G
F
Réponses
2
Affichages
1 K
fredvh
F
J
Réponses
4
Affichages
2 K
D
Réponses
8
Affichages
3 K
Dargan
D
P
Réponses
2
Affichages
3 K
pifoufou75
P
Retour