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

jacky49

XLDnaute Impliqué
Bonjour le forum,

J'ai un code Vba fait par Pierre-Jean qui me place mon tirage en feuille Finale et décide du Nombres de poules(Cette solution fonctionnait bien pour la saison dernière mais pour la prochaine, on veut l'améliorer).Ce que je voudrais Changer , c'est que c'est moi qui décide du Nombres de Poules( après bien des essais, je bloquee).Je fais donc appelle au forum qui m'a toujours bien aidé .
merci d'avance, je joins mon code .
HTML:
Sub testFinaleSMF()
Sheets("Finale").Range("B7:R13").ClearContents
ecartparpoule = 0
nbdossards = Range("A65536").End(xlUp).Row - 4
If Int((nbdossards) / 6) <> ((nbdossards) / 6) Then
  nombredepoules = Int((nbdossards) / 6) + 1
Else
  nombredepoules = (nbdossards) / 6
End If
Range("R9") = nombredepoules
Dim poules()
ReDim poules(1 To nombredepoules)
derpoule = nbdossards - (nombredepoules - 1) * 6
If derpoule < 3 Then
 ecart = 3 - derpoule
 derpoule = 3
 ecartparpoule = Int(ecart / (nombredepoules - 1)) + 1
End If
poules(UBound(poules)) = derpoule
For n = nombredepoules - 1 To 1 Step -1
 poules(n) = 6
Next n
If ecartparpoule <> 0 Then
  For n = nombredepoules - 1 To 1 Step -1
    poules(n) = poules(n) - ecartparpoule
    ecart = ecart - ecartparpoule
    If ecart = 0 Then Exit For
  Next n
End If
col = 2
ligne = 7
l = 7
For n = 1 To UBound(poules)
  For m = 1 To poules(n)
     Sheets("Finale").Cells(ligne, col) = Range("A" & l)
     l = l + 1
     ligne = ligne + 1
  Next m
  ligne = 7
  col = col + 3
Next n
Sheets("Finale").Select
End Sub

jacky
 
Re : Nbrs de Poules

re,

avec les bonnes balises et avec mes excuses.

Code:
Sub testFinaleSMF()
Sheets("Finale").Range("B7:R13").ClearContents
ecartparpoule = 0
nbdossards = Range("A65536").End(xlUp).Row - 4
If Int((nbdossards) / 6) <> ((nbdossards) / 6) Then
  nombredepoules = Int((nbdossards) / 6) + 1
Else
  nombredepoules = (nbdossards) / 6
End If
Range("R9") = nombredepoules
Dim poules()
ReDim poules(1 To nombredepoules)
derpoule = nbdossards - (nombredepoules - 1) * 6
If derpoule < 3 Then
 ecart = 3 - derpoule
 derpoule = 3
 ecartparpoule = Int(ecart / (nombredepoules - 1)) + 1
End If
poules(UBound(poules)) = derpoule
For n = nombredepoules - 1 To 1 Step -1
 poules(n) = 6
Next n
If ecartparpoule <> 0 Then
  For n = nombredepoules - 1 To 1 Step -1
    poules(n) = poules(n) - ecartparpoule
    ecart = ecart - ecartparpoule
    If ecart = 0 Then Exit For
  Next n
End If
col = 2
ligne = 7
l = 7
For n = 1 To UBound(poules)
  For m = 1 To poules(n)
     Sheets("Finale").Cells(ligne, col) = Range("A" & l)
     l = l + 1
     ligne = ligne + 1
  Next m
  ligne = 7
  col = col + 3
Next n
Sheets("Finale").Select
End Sub

jacky
 
Re : Nbrs de Poules

re le forum,

Je me suis pas tres bien expliqué car en fait, la macro décide du Nbrs de Poules, comme elle divise par 6(car maxi 6 dans chaque poules)cela va mais sauf que si j'ai 9 partants, elle m'en classe 6 dans une poule et 3 dans l'autre,alors que ce serait plus logique qu'elle me fasse une poule de 5 et une poule de 4 .
merci
jacky
 
- 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
4
Affichages
284
Réponses
2
Affichages
257
Réponses
5
Affichages
917
Réponses
8
Affichages
399
Réponses
15
Affichages
793
Retour