Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Foot : série de performance en dynamique

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

Phillip

XLDnaute Occasionnel
Bonjour,

Bon, on est dans la période du foot...Et je prépare la saison de ligue 1 21-22. J'aimerais, pour chaque équipe, aligner les séries VVV, ou VDN, ou NNN, etc...

J'ai un tableau où je saisirais tous les résultats. J'ai crée une formule qui marche très bien pour la 1° journée. Elle va chercher le résultat d'Angers par exemple, et si Angers a gagné, met un V dans la cellule...

Le problème, c'est dès la 2° journée, ma formule de la 1° journée ne garde pas le résultat de la 1°, mais évolue...Et le comportement de ma formule est normal, puisque je lui dis que si mon nombre de matches joués est différent de 1, mettre "D"...

Je ne m'en sors pas...

Un avis éclairé ?

merci

Cordialement

Phillip
 

Pièces jointes

Il n'y a pas de dates...On rentre les résultats un par un...On écrit le résultat en I3 pour angers à la première journée, en J3 pour angers à la deuxième journée....En I4 pour le club suivant à la première journée, en J4 pour la 2° journée, etc...

Merci pour ton aide
 

Pièces jointes

Hello,

Je ne désespère pas mais j'ai changé mon fusil d'épaule et décidé de partir en macro...J'ai remis un post car j'ai un problème de recherche avec 2 critères... J'ai mis un petit fichier exemple...Si tu jettes un oeil..

Merci

Cordialement
 
Bonsoir @Phillip ,

Si c'est la solution alors super :

VB:
Sub Test()
    Dim T0, T1, T2 As Variant
    T0 = Range(Cells(2, 1), Cells(Cells(65536, 1).End(xlUp).Row, 1))
    ReDim Preserve T0(LBound(T0, 1) To UBound(T0, 1), LBound(T0, 1) To 2)
    For i = LBound(T0, 1) To UBound(T0, 1)
        For j = i + 1 To UBound(T0, 1)
            If T0(i, 1) = T0(j, 1) Then
                T0(j, 2) = "D"
            End If
        Next j
    Next i
    ReDim T1(0)
    For i = LBound(T0, 1) To UBound(T0, 1)
        If T0(i, 2) <> "D" Then
            T1(UBound(T1)) = T0(i, 1)
            ReDim Preserve T1(UBound(T1) + 1)
        End If
    Next i
    ReDim Preserve T1(UBound(T1) - 1)
    '
    Cells(3, 8).Resize(UBound(T1) + 1) = Application.Transpose(T1)
    Erase T0
    T0 = Range(Cells(2, 1), Cells(Cells(65536, 1).End(xlUp).Row, 4))
    ReDim T2(0)
    For i = LBound(T1) To UBound(T1)
    T2(0) = T1(i)
        For j = LBound(T0, 1) To UBound(T0, 1)
            If T1(i) = T0(j, 1) And T0(j, 2) <> "" Then
                If T0(j, 2) > T0(j, 3) Then
                    ReDim Preserve T2(UBound(T2) + 1)
                    T2(UBound(T2)) = "V"
                ElseIf T0(j, 2) < T0(j, 3) Then
                    ReDim Preserve T2(UBound(T2) + 1)
                    T2(UBound(T2)) = "D"
                Else
                    ReDim Preserve T2(UBound(T2) + 1)
                    T2(UBound(T2)) = "N"
                End If
            End If
        Next j
    Cells(i + 3, 8).Resize(LBound(T2) + 1, UBound(T2) + 1) = T2
    Erase T2
    ReDim T2(0)
    Next i
End Sub
 
Bonjour,

Je dois avouer que je ne comprends pas ton code. Je suis faible en tableaux. Donc incapable d'adapter cela à mon vrai fichier. Mais à force de d'essais et d'échecs j'ai réussi à m'en sortir. Sans doute moins subtilement, mais je n'en suis pas à faire joli ou optimiser mes code...Ca marche et c'est tout ce que je veux...
VB:
Sub SeriesparEquipe()

Set equipes = Range("I5:I24")




For Each equipe In equipes
coljournee = Cells(5, 10).Column
    For zonejournees = 1 To 380 Step 10
        
    
    
    Set matches = Range(Cells(zonejournees + 1, i + 2), Cells(zonejournees + 10, i + 5))
    

    'Je trouve la ligne et la colonne de l'equipe a la premiere journee
    
    ligneequipe = matches.Find(what:=equipe).Row
        
    colonneEquipe = matches.Find(what:=equipe).Column
    
        If colonneEquipe = 2 Then
            If Cells(ligneequipe, colonneEquipe + 4) > Cells(ligneequipe, colonneEquipe + 5) Then
            Cells(equipe.Row, coljournee).Value = "V"
            ElseIf Cells(ligneequipe, colonneEquipe + 4) = Cells(ligneequipe, colonneEquipe + 5) Then
            Cells(equipe.Row, coljournee).Value = "N"
            Else: Cells(equipe.Row, coljournee).Value = "D"
            End If
        End If

         If colonneEquipe = 5 Then
             If Cells(ligneequipe, colonneEquipe + 2) > Cells(ligneequipe, colonneEquipe + 1) Then
            Cells(equipe.Row, coljournee).Value = "V"
            ElseIf Cells(ligneequipe, colonneEquipe + 2) = Cells(ligneequipe, colonneEquipe + 1) Then
            Cells(equipe.Row, coljournee).Value = "N"
            Else: Cells(equipe.Row, coljournee).Value = "D"
            End If
         End If
        
    coljournee = coljournee + 1
      
    Next zonejournees
    
    
Next equipe
    


End Sub

Merci de tout tes efforts de compréhension de problème et de développement !

Cordialement

Phillip
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…