Essayez cette petite fonction définie par l'utilisateur:
Public Function PersonOfInterest()
Dim v As Variant, nam As String
Application.Volatile
nam = Sheet1.Name
v = Sheet1.Range("J28").Value
For i = 2 To 8
v2 = Sheets(i).Range("J28").Value
If v2 > v Then
v = v2
nam = Sheets(i).Name
End If
Next i
PersonOfInterest = nam
End Function
EDIT # 1:
fonctions définies par l'utilisateur (FDU) sont très faciles à installer et à utiliser:
- ALT-F11 ouvre la fenêtre VBE
- ALT-I ALT- M ouvre un module frais
- coller les choses et fermer la fenêtre VBE
Si vous enregistrez le classeur, l'UDF sera sauvegardé avec. Si vous utilisez une version d'Excel 2003, puis plus tard, vous devez enregistrer le fichier comme .xlsm plutôt que .xlsx
Pour supprimer l'UDF:
- faire apparaître la fenêtre VBE comme ci-dessus
- clairement le code à
- fermer la fenêtre VBE
Pour utiliser l'UDF à partir d'Excel:
= myfunction (A1)
Pour en savoir plus sur les macros en général, voir:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
et
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
et détails sur UDFs, voir:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
Les macros doivent être activées pour que cela fonctionne!
EDIT # 2:
Cette version retournera plus d'un nom:
Public Function PersonsOfInterest()
Dim v As Variant, nam As String
Dim i As Long, v2 As Variant
Application.Volatile
nam = Sheet1.Name
v = Sheet1.Range("J28").Value
For i = 2 To 8
v2 = Sheets(i).Range("J28").Value
If v2 > v Then
v = v2
End If
Next i
PersonsOfInterest = ""
For i = 1 To 8
If Sheets(i).Range("J28").Value = v Then
If PersonsOfInterest = "" Then
PersonsOfInterest = Sheets(i).Name
Else
PersonsOfInterest = PersonsOfInterest & ", " & Sheets(i).Name
End If
End If
Next i
End Function
Merci pour la réponse. Bien que je ne sois pas complètement vert avec VBA, pourriez-vous m'éclairer où et comment implémenter ce code? Je veux que le nom soit retourné dans une cellule, au fait. –
@ H.Vink Voir mon ** EDIT # 1 ** –
Merci, cela fonctionne comme un charme quand je laisse les supports vides. Il ne montre cependant pas plusieurs noms lorsque les participants ont le même score le plus élevé, ce qui est effectivement le cas. Pourriez-vous nous aider, s'il vous plaît? –