Faire correspondre le nom de la personne avec le plus H. Triple ou plus H
Bonjour à tous,
J'ai créé une formule qui inscrit les H. Triples, H. Simples (Voir pièce jointe) en ordre décroissant, ainsi que le nom, le numéro d'équipe et le numéro de la personne correspondant au plus H. Triple et plus H. Simple.
Les plus H. Triples et plus H. Simples sont inscrits dans deux tableau différents (Voir pièce jointe)
(Pour information seulement) Après inscription des plus H. Triples et plus H. Simples, les trois premiers sont copiés par une macro dans un tableau sur une autre feuille.
Mon problème est que lorsqu'il y a égalité dans les trois premiers plus H. Triples ou plus H. Simples seul les informations de la première personne s'inscrivent dans le tableau, en deuxième place. (voir tableau en pièce jointe).
J'aimerais, si possible modifier la formule afin que le nom, le numéro d'équipe, ainsi que le numéro correspondant, de la deuxième personne et de la troisième personne (si il y trois égalités) s'inscrive dans la cellule correspondante. Comme il n'y a pas d'égalité dans le tableau plus H. Simple, la formule fait son travail.
Une macro que je pourrais activée par la fonction "Call" dans la macro principale de mon système, pourrait aussi très bien faire le travail.
Merci beaucoup pour votre aide.
Bonjour Golfeur01
Je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aideront dans vos demandes et réponses sur ce forum et notamment
- Ne postez aucune information personnelle et/ou confidentielle sur le forum (en particulier dans les fichiers joints) et rappelez-vous que vous êtes responsable de tout ce que vous postez sur le forum.
Bonjour Bruno,
Je ne suis pas certain de comprendre pourquoi vous avez retiré mon fichier. L'onglet "Informations personnelles", dans le fichier en pièce jointe, ne contient qu'une liste de nom pris au hazard et des numéros. Dans mon fichier principal, cet onglet "Informations personnelles" contient effectivement des informations personnelles, tel les numéros de téléphone, les dates de naissance, ce que j'ai retiré du fichier en pièce jointe.
J'ai utilisé un fichier similaire avec les mêmes informations très souvent dans le passé sans problème. SVP me dire quelles sont les informations personnelles que je dois retirer afin que je puisse retourner sur le Fil avec ma question.
Merci d'être aussi vigilant et de voir à ce que le Fil soit sécuritaire pour tous.
Bonjour Golfeur01
Désolé, mais je suis plutôt à cheval sur les données dites sensibles, et pour moi un prénom + nom l'est
https://www.cnil.fr/fr/definition/donnee-personnelle
Vous avez un outil sur ce forum qui permet d'anonymiser le fichier
https://www.excel-pratique.com/fr/utilitaires/anonymisation-donnees
Vous l'avez peut-être fait dans le passé,
mais les règles européennes sont de plus en plus stricte à ce sujet, c'est pour cela que je l'ai retiré
Merci de votre compréhension
Bonjour Bruno,
La vigilance n'est jamais de trop. Elle ne fait que réaffirmer les règles qui doivent être appliquées.
Merci pour l'explication. Est-ce que je peux remettre mon fichier sur le Fil en inscrivant que l'initiale du prénom ? Ce serait plus discret et sans danger pour la personne concernée ?
Merci encore pour ton aide
Bonjour Bruno,
Excellent cet outil d'anonymisation. Je viens de l'utiliser. Mon fichier devrait être conforme aux règles.
Merci encore
Désolé Bruno.
Pourtant ce n'est pas ma première fois sur le Fil.
Encore moi,
Cette fois j'ai bien utilisé l'anonymisation et ça devrait correspondre avec les règles du Forum.
Merci encore pour ton aide et surtout pour ta patience et compréhension.
Re,
Merci Golfeur01
Moi qui ne suit pas golfeur, comment sait on la différence entre H. Triples et plus H. Simples
A+
Bonsoir BrunoM45,
Petite précision, Le fichier n'a rien à voir avec le golf. C'est un fichier qui traite les données d'une ligue de bowling.
H. Triple (Haut Triple) H. Simple (Haut Simple). Haut Triple est le total des 5 joueurs qui forment l'équipe après 3 parties. Haut Simple est le total des mêmes 5 joueurs après une seule partie. Ligue formée par des personnes de l'age d'or qui jouent en après midi pour le plaisir. J'administre le système informatique pour leur rendre service. Ça leur évite de s'occuper des données et de la comptabilité.
La source du H. Triple est la colonne BO qui reçoit ses données à partir d'une macro activée dans mon système. Les données en BO et BT sont toujours en Valeur. J'ai inscrit des valeurs au hazard en BO et BT.
La source du H. Simple est la colonne BT. Même information que BO.
Comme tu peux voir, la formule en BQ ne fait pas le travail s'il y a égalité en BS. Le nom en BQ4 ne devrait pas être le même qu'en BQ3. Comme je ne sais pas comment modifier ma formule afin que le nom de la deuxième personne qui a inscrit le 3000 s'inscrive en BQ4, je demande votre aide afin de modifier la formule ou de créer une macro qui fera le travail.
Merci beaucoup pour ton aide.
bonjour,
les 2 solutions,
* en formules : il faut ajouter 2 colonnes BP:BQ pour créer un classement avec des égalités et alors on peut rechecher les données avec le résultat de la colonne BQ
* avec une macro :
Sub Classement()
Dim SCA, iA, A, iCol, aSCA, Out(), iO
Set SCA = CreateObject("system.collections.arraylist") 'sorted list
A = Sheets("données").Range("A3:BZ1003").Value 'les données >>> matrice
For i = 1 To 2 '2 sortes de classement
Select Case i
Case 1: iCol = Range("BO1").Column: Set c = Sheets("Données").Range("CA3") 'classement 1 = H triple, coller en CA3
Case 2: iCol = Range("BV1").Column: Set c = Sheets("Données").Range("CF3") 'classement 2 = H simple coller en CF3
Case Else: MsgBox "erreur": Exit Sub 'normallement impossible d'arriver ici
End Select
SCA.Clear 'vider ce SCA
For iA = 1 To UBound(A) 'boucle les données
If Len(A(iA, iCol)) > 0 And IsNumeric(A(iA, iCol)) Then SCA.Add A(iA, iCol) + iA / 10000 'il y a un pointage pour ce classement = ajouter points + index/10.000
Next
SCA.Sort 'sorter croissant
SCA.Reverse 'inverser ce sortage
aSCA = SCA.toarray 'SCA >>> matrice
ReDim Out(1 To UBound(aSCA) + 1, 1 To 4) 'preparer une matrice pour le résultat
For iO = 1 To UBound(Out) 'boucle
j = aSCA(iO - 1) * 10000 Mod 10000 'enlever la partie avec l'index
Out(iO, 1) = A(j, 2) 'equipe
Out(iO, 2) = A(j, 3) 'nom
Out(iO, 3) = A(j, 1) 'numéro
Out(iO, 4) = A(j, iCol) 'points x
Next
With c 'la cellule en haut et gauche pour coller
.Resize(1000, 4).ClearContents 'vider cette plage
.Resize(UBound(Out), 4).Value = Out 'coller les données
.Resize(, 4).EntireColumn.AutoFit 'ajuster le largeur des colonnes
End With
Next
End SubBonjour BsAlv,
Merci beaucoup pour les deux solutions. Je crois que la solution "Formules" sera la meilleur pour mes besoins.
Je te remercie et passe une excellente journée.
Un gros merci à BrunoM45 pour sa gentillesse et surtout sa patience. Continue ton excellent travail en tant que Modérateur.
Je ferme le dossier.