Pour gérer une compétition

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

fb62840

XLDnaute Impliqué
Bonjour à toutes et tous,

Je fais appel à vous pour finaliser une application qui doit permettre de gérer une compétition de tir à l'arc.

Vous trouverez dans le fichier ci-joint les explications des compléments qu'il me faudrait réussir à réaliser.

Je ne demande bien entendu pas que vous fassiez l'intégralité du travail pour moi, mais de me mettre sur la piste et de m'aider à rédiger les bons codes.

merci beaucoup
 

Pièces jointes

Re : Pour gérer une compétition

J'ai mis sheets("Match 1").Activate car je me suis dit que si sans cela il recopiait les données sur la feuille où se trouve le bouton d'appel (Feuil1) alors c'était sans doute parce que le "focus" (désolé si ça n'est pas le bon terme) n'était pas envoyé à la bonne page.

En fait l'exécution Pas à Pas n'est pas très instructif (je l'appelle par F8) et il surmarque la première ligne du code, puis il affiche la msgbox qui affiche le message d'alerte n'invitant à créer les groupes que si tous les résultats sont saisis, puis il affiche la msgbox qui indique la valeur de la moyenne et puis c'est tout.
 
Re : Pour gérer une compétition

l'erreur vient du calcul de la moyenne... pourquoi as tu changé f par a dans le range?? forcément ça déconne.
Essaie avec :
Code:
Sub groupe()
With Sheets("Match 1")
.Range("g1") = "Groupe"
moyenne = Application.Average(Range(.Range("f2"), .Range("f1").End(xlDown)))
MsgBox moyenne
For i = 2 To .Range("a1").End(xlDown).Row
    If Cells(i, 6) >= moyenne Then
        Cells(i, 7) = "Groupe 1"
    Else
        Cells(i, 7) = "Groupe 2"
    End If

Next

.Rows(1).Copy Sheets("Groupe 1").Range("a1")
.Rows(1).Copy Sheets("Groupe 2").Range("a1")

Sheets("Groupe 1").Range("l1") = "Groupe"
Sheets("Groupe 1").Range("l2") = "Groupe 1"
Sheets("Groupe 2").Range("l1") = "Groupe"
Sheets("Groupe 2").Range("l2") = "Groupe 2"

.Range("a1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheets("Groupe 1").Range("l1:l2"), Sheets("Groupe 1").Range("a1:g1"), False
.Range("a1").CurrentRegion.AdvancedFilter xlFilterCopy, Sheets("Groupe 2").Range("l1:l2"), Sheets("Groupe 2").Range("a1:g1"), False
End With

End Sub

J'ai corrigé pour que la moyenne des points se fasse sur la colonne F et pour que ça aille jusqu'à la dernière ligne saisie et non plus 31. Chez moi ça marche!
 
Re : Pour gérer une compétition

Je l'ai fait après avoir reçu ton message de 16H16 dans lequel tu me donnais :

Code:
moyenne = Application.Average(Range(Range("a2"), Range("a1").End(xlDown)))

Désolé pour la confusion.

Je viens de tester avec ton dernier code, ça marche.

Je te remercie vraiment beaucoup ton aide m'est vraiment très très utile.

Bonne soirée
 
- 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
2
Affichages
562
Réponses
21
Affichages
2 K
Retour