Lignes avec des noms en commun

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

L

Laulo

Guest
Bonjour,

Je joins le fichier qui me pose problème.
Ce sont des résultats de skieurs lors d'une année.
Dans ce tableau, chaque fois qu'un skieur se classe dans une course, une ligne à son nom se rajoute.
J'aimerai que chaque nom n'apparaisse qu'une seule fois, avec dans cette ligne, tous ses classements !

Pouvez-vous m'aidez ?

Ce serait tooop 😀
 

Pièces jointes

Re : Lignes avec des noms en commun

Bonjour Laulo,
Pas ceratain de pouvoir t'aider, mais j'ai une question: Que veux tu faire si il y a deux résultats pour une course et pour le même nom . (Voir S9 et S22 de ton exemple).
Cordialement
 
Re : Lignes avec des noms en commun

Merci de prendre le temps de lire mon message !

Les lignes S9 et S22, ce ne sont pas tout à fait les memes nom :
AUGERT Jean-Noel*
AUGERT Jean-Pierre
Normalement, il ne devrait pas avoir ce problème.
Le seul souci c'est que, pour certaines personnes, le nom est suivi d'un espace. (Et supprespace n'a pas marché j'ai l'impression)
 
Re : Lignes avec des noms en commun

Re, Bonjour JHA,
L'espace n'en est pas un 😀, c'est un espace certe, mais insécable (Chr(160)).
Une proposition par macro sur iun onglet "Résultat", pour la feuille HOMMES, pour les femmes il suffit de changer le nom de la feuille en début de code.
Cordialement
 

Pièces jointes

Re : Lignes avec des noms en commun

Re, Bonjour à tous
EDIT
Suite au très bon code de J.Boisgontier une version plus rapide (- 30%)
VB:
Sub test_2()
Dim i&, j&, K&, Tmp$
Dim TData As Variant, TReport As Variant, D As Object

Set D = CreateObject("Scripting.Dictionary")

With Sheets("HOMMES")
    TData = .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(3).Row, 65))
End With

ReDim TReport(1 To UBound(TData, 1), 1 To UBound(TData, 2))

For i = LBound(TData, 1) To UBound(TData, 1)
    Tmp = Trim(Replace(TData(i, 1), Chr(160), ""))
    If Tmp <> "" Then D(Tmp) = ""
    j = Application.Match(Tmp, D.Keys, 0)
    For K = LBound(TData, 2) To UBound(TData, 2)
        If Trim(Replace(TData(i, K), Chr(160), "")) <> "" Then _
        TReport(j, K) = TData(i, K)
    Next K
Next i

With Sheets("Résultat")
    .Rows("2:" & .Cells(Rows.Count, 1).End(xlDown).Row).ClearContents
    .Cells(2, 1).Resize(D.Count, UBound(TReport, 2)) = TReport
End With

End Sub
Cordialement
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour