Re : Constitution d'équipes à partir d'un classement, pbm de formule
Bonjour Popaul72,
Merci du "Super" mais il n'y a pas de miracle...
‘J’ai sélectionné la zone A2:C99 et (avec Ctrl et F3 définir un nom), je lui ai attribué le nom : “Inscrits »
‘Dans le bouton j’ai placé ce code
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
‘ pour éviter que l’écran ne “scintille” à chaque rafraichissement après une action (plus esthétique et plus rapide ainsi)
Application.Goto Reference:="Inscrits" ‘ Sélection de toute la zone des élèves avec leur établissement et leur score
‘ Puis tri (croissant) en commençant par les établissement et en 2ème clé le score (décroissant cette fois) et enfin par ordre alphabétique des noms
Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlDescending, Key3:=Range("A3"), Order3:=xlAscending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False,
‘ en supprimant : Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal c’est encore plus rapide
Range("A2").Select
‘ Remise en état d’origine la “Mise à jour de l’écran
Application.ScreenUpdating = False
End Sub
En ce qui concerne l'alarme:
J'utilise la MFC ( Mise en Forme Conditionnelle)
Je sélectionne les cellules de D3 à D99 et j'applique avec Format - Mise en forme conditionnelle (Menu en haut d'excel...) une condition :
La formule est ===> =NB.SI($D$3
100;D3)<4
avec le format (Motif) Rouge, Rose ou ce que tu veux
Ce qu veux dire que si le nombre le valeurs (identiques), en partant de $D$3 (reference absolure) jusqu'à D99 est plus petit que 4 (donc équipe incomplete) la cellule sera rougie.
Tout bête non ?
En espérant que tu puisses réinvestir ces infos pour les intégrer dans ton programme.
J'ai essayé de faire encore un peu mieux :
A chaque fois que l'établissement ou le score sera changé le classement se fera automatiquement.
Le pied pour les flemmards !
le code se trouve dans la feuille avec
Private Sub Worksheet_Change(ByVal Target As Range)
(cette macro se déclenche à chaque modification de cellule)
Application.ScreenUpdating = False
(on précise ici la target (cible) qui doit etre prise en compte)
If Not Intersect(Target, Range("B3:C99")) Is Nothing Then
-puis la macro comme avant ...
sans oublier le
End if car au début il y a un if (si... donc Sinon à la fin)
Ouf !
Le bouton est devenu inutile.
A toi de jouer maintenant
Bien cordialement
@+ C'est 6 facile...