Microsoft 365 Besoin d'aide liste de noms

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 !

zebrano

XLDnaute Nouveau
Bonjour,
Peut-être voudrez-vous bien m'aider ?
Je travaille dans une école, et j'ai des listes"excel" d'élèves avec des noms en Colonne A et le prénom en B.
Mon soucis est de savoir comment je peux repérer les fratries !
Je renseignerai le nom dans une cellule et la cellule à côté me donnerait tous les prénoms lié au nom !
Il y a environ 400 élèves et parfois+ de 4 ou 5 enfants par famille
J'ai un niveau excel débutant !
J'ai essayé avec =siestna(recherchev.
Ou encore recherchex. sans résultat probant.
Merci par avance
 
Maintenant il faut savoir que la solution la plus rapide est celle qui utilise des tableaux VBA (matrices) :
VB:
Option Compare Text 'la casse est ignorée

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("F1")) Is Nothing Then Exit Sub
Dim nom$, dest As Range, tablo, resu(), i&, n&
nom = Range("F1")
Set dest = Range("G1") '1ère cellule de destination
tablo = ListObjects(1).Range 'matrice, plus rapide, sur tableau structuré
ReDim resu(1 To UBound(tablo), 1 To 1) 'tableau des résultats
For i = 2 To UBound(tablo)
    If tablo(i, 1) = nom Then n = n + 1: resu(n, 1) = tablo(i, 2)
Next
If n Then dest.Resize(n) = resu
dest.Offset(n).Resize(Rows.Count - n - dest.Row + 1).ClearContents 'RAZ en dessous
End Sub
Pour tester j'ai recopié le tableau A2:C28 sur 918 lignes, chez moi sur Win 11 Excel 2019 :

- macro du post #12 => 0,03 seconde

- macro du post #15 => 0,16 seconde (contrairement à ce que je pensais le filtre automatique est moins rapide)

- macro de ce post #16 => 0,003 seconde.
 

Pièces jointes

Maintenant il faut savoir que la solution la plus rapide est celle qui utilise des tableaux VBA (matrices) :
VB:
Option Compare Text 'la casse est ignorée

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("F1")) Is Nothing Then Exit Sub
Dim nom$, dest As Range, tablo, resu(), i&, n&
nom = Range("F1")
Set dest = Range("G1") '1ère cellule de destination
tablo = ListObjects(1).Range 'matrice, plus rapide, sur tableau structuré
ReDim resu(1 To UBound(tablo), 1 To 1) 'tableau des résultats
For i = 2 To UBound(tablo)
    If tablo(i, 1) = nom Then n = n + 1: resu(n, 1) = tablo(i, 2)
Next
If n Then dest.Resize(n) = resu
dest.Offset(n).Resize(Rows.Count - n - dest.Row + 1).ClearContents 'RAZ en dessous
End Sub
Pour tester j'ai recopié le tableau A2:C28 sur 918 lignes, chez moi sur Win 11 Excel 2019 :

- macro du post #12 => 0,03 seconde

- macro du post #15 => 0,16 seconde (contrairement à ce que je pensais le filtre automatique est moins rapide)

- macro de ce post #16 => 0,003 seconde.
Merci beaucoup 🙏
 
Bonjour à tous,

Si zebrano a bien la version 365 (ou même depuis Excel 2021), on n'a quand même pas besoin de vba une simple formule très classique suffit.
Pour avoir les prénoms listés dans une colonne :
VB:
=FILTRE(Tableau1[Prénoms];Tableau1[Noms]=F1;"")
et si on veut tous les prénoms dans une seule cellule
Code:
=TABLEAU.EN.TEXTE(FILTRE(Tableau1[Prénoms];Tableau1[Noms]=F1;""))
ou ausssi
=JOINDRE.TEXTE(", ";1;FILTRE(Tableau1[Prénoms];Tableau1[Noms]=F1;""))
Mais comme déjà dit au post #4, si des familles portent le même nom, on ne fait pas la différence.
 

Pièces jointes

Bonjour à tous,

Si zebrano a bien la version 365 (ou même depuis Excel 2021), on n'a quand même pas besoin de vba une simple formule très classique suffit.
Pour avoir les prénoms listés dans une colonne :
VB:
=FILTRE(Tableau1[Prénoms];Tableau1[Noms]=F1;"")
et si on veut tous les prénoms dans une seule cellule
Code:
=TABLEAU.EN.TEXTE(FILTRE(Tableau1[Prénoms];Tableau1[Noms]=F1;""))
ou ausssi
=JOINDRE.TEXTE(", ";1;FILTRE(Tableau1[Prénoms];Tableau1[Noms]=F1;""))
Mais comme déjà dit au post #4, si des familles portent le même nom, on ne fait pas la différence.
En effet, je préfère la version formule qui est plus simple pour mon petit niveau excel 🙂
Merci a tous🙏🙏🙏
 
- 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
1 K
Retour