XL 2019 Concours/Formules pour affecter un terrain dans le tour suivant selon le résultat

berru76

XLDnaute Occasionnel
Bonjour

Si des pros des formules ont une solution a mon problème un grand Merci a vous


Dans le fichier ci-joint je recherche

Feuille Terrains G P

Formule pour affecter le terrain (F4-F33) dans le tour suivant (k4-K33) selon le résultat G/P

Feuille Terrains 13<13

Formule pour affecter le terrain (AH4-AH33) dans le tour suivant (AP4-AP33) selon le résultat 13<13

Merci de votre aide
 

Pièces jointes

  • Terrains G P ou 13 3 .xlsm
    159 KB · Affichages: 8

crocrocro

XLDnaute Impliqué
Bonjour le fil,
@berru76 , vos tableaux n'étant pas très "carrés" (lignes intermédiaires, valeurs X ...), je vous propose de me fournir un fichier réduit où le problème se pose.
Je ne connais pas votre niveau de maitrise du code VBA et donc si vous êtes en mesure de bien comprendre, et donc d'adapter le code pour coller aux irrégularités de vos tableaux.
En pj, avec un peu plus de commentaires et des adaptations mineures (qui ne changent rien à votre problème du post 17).
 

Pièces jointes

  • Essai Terrains 4 tourscrocrocro2.xlsm
    62.6 KB · Affichages: 1
Dernière édition:

berru76

XLDnaute Occasionnel
Bonjour
Excusez moi du retard de cette réponse ( problème de santé)
J'ai bien réussis a adapter votre macro dans toutes les pages de mon fichier
Cela fonctionne parfaitement
Un grand merci pour votre aide

Mon niveau VBA est faible
J'ai essayé d'adapter votre macro sur un autre de nos fichier similaire mais ou l'indice est 13 ou <13 La macro semble fonctionner ,place les terrains dans le tours suivant mais m'annonce que l'indice n'appartient pas a la sélection
Si vous pouvez me dire ou est mon erreur

Merci
 

Pièces jointes

  • GG goal 13 .xlsm
    252.8 KB · Affichages: 1

crocrocro

XLDnaute Impliqué
bonsoir @berru76 ,
l'erreur vient d'une mauvaise affectation de la variable ColJoue 39 (AM) 38 (AL)
VB:
Sub AttribuerTerrainsTour(pNoTour As Integer)
Const PREMLIG = 4       ' 1ère ligne des Matchs
Dim ColTour As Integer  ' colonne 34 = AH (pour 1er Tour)
'Dim ColJoue As Integer  ' colonne 39 = AM (Match gagné ou perdu Equipe 2 1er Tour)
Dim ColJoue As Integer  ' colonne 38 = AL (Match gagné ou perdu Equipe 2 1er Tour)
Dim ColJoueSuiv  As Integer ' colonne 44 = AR (Match gagné ou perdu Equipe 1 2ème Tour)
Dim ColTourSuiv  As Integer ' colonne 42 = AP (n° terrain 2ème Tour)
Dim i As Integer, AM As Integer, AP As Integer
Dim DerLig As Long, Derlig2 As Long
Dim TabTerrain()
Dim NoTerrain As String
Dim TabNo()
Dim alea
Dim Fin As Boolean, Trouve As Boolean

    ' En fonction du Tour en paramètre de la macro, on recalcule les colonnes
    ColTour = 34 + 8 * (pNoTour - 2)
    ''''ColJoue = 39 + 8 * (pNoTour - 2)
    ColJoue = 38 + 8 * (pNoTour - 2)
    ColJoueSuiv = 44 + 8 * (pNoTour - 2)
    ColTourSuiv = 42 + 8 * (pNoTour - 2)

EDIT :
Une suggestion pour éviter les erreurs de calcul de colonnes :

Code:
    ColTour =ActiveSheet.Range("AH").Column + 8 * (pNoTour - 2)
    ColJoue = ActiveSheet.Range("AL").Column+ 8 * (pNoTour - 2)
    ColJoueSuiv = ActiveSheet.Range("AR").Column + 8 * (pNoTour - 2)
    ColTourSuiv = ActiveSheet.Range("AP").Column + 8 * (pNoTour - 2)
 
Dernière édition:

crocrocro

XLDnaute Impliqué
Bonsoir
j'ai modifier comme indiqué les terrains s'affiche tous même avec un résultat
il semblerait que la valeur 13 <13 ne soit pas prise en compte
Merci de votre aide
Je ne comprends pas votre remarque. Pourriez-vous donner un exemple précis avec au moins une ligne concernée (capture d'écran) avec :
- situation avant
- action effectuée
- situation après

Rappel des règles proposées et donc mises en place :
Faire une attribution des terrains par macro avec pour règle complémentaire de n'attribuer un terrain que si il n'a pas déjà été attribué. Ce qui permet d'effectuer des attributions au fil de l'eau, en conservant donc les terrains attribués précédemment. Pour remettre en jeu les terrains du 2ème tour attribués à tort, il suffit de les remettre à blanc avant de lancer la macro.
EDIT : Pour éviter que les équipes qui gagnent, rejouent systématiquement sur le même terrain, tirage aléatoire des terrains libres lors de l'attribution.
Attribution du terrain seulement si les 2 joueurs ont gagné le tour précédent
 

berru76

XLDnaute Occasionnel
Re
La macro n'est pas mise en cause dans le fichier G/P fonctionne très bien

Je pense que cela vient de ma formule qui place les équipes dans le tour suivant selon résultats 13/?

"Attribution du terrain seulement si les 2 joueurs ont gagné le tour précédent"
Apres nouveau essai
Si je met 2 dans un coté tout les perdants s'affiche et la macro affiche les terrains des perdants (image 1)
Si je met 13 dans un coté toutes les équipes s'affiche (image 2)
Si je met 13 dans un coté toutes les équipes s'affiche et la macro affiche tout les terrains (image 3)
Si je note13 / 2 cela fonctionne correctement ( image 4 )
D'où mes erreurs
Je vais adapter le fichier 13/? avec la macro
Merci pour votre patience
 

Pièces jointes

  • 4.PNG
    4.PNG
    67.6 KB · Affichages: 3
  • 3.PNG
    3.PNG
    71 KB · Affichages: 1
  • 2.PNG
    2.PNG
    52.2 KB · Affichages: 1
  • 1.PNG
    1.PNG
    68.8 KB · Affichages: 3

crocrocro

XLDnaute Impliqué
Bonjour,
une suggestion pour avoir des scores cohérents :
compléter vos MFC en ajoutant (ici pou les scores du 2ème tour)
VB:
=OU(ET(ESTVIDE($AQ4);NON(ESTVIDE($AU4)));ET(ESTVIDE($AU4);NON(ESTVIDE($AQ4))))
ce qui permet de mettre en évidence les scores incomplets (seulement gagnant ou perdant renseigné)
1732003479395.png
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 130
Membres
112 667
dernier inscrit
foyoman