Report de données d'onglets - Gestion ligue 2

Bonjour le Forum,

j'essaie de créer une gestion de championnat de ligue 2. Dans le fichier joint nous aurons un onglet Recap et 38 onglets representant chacun une journée de championnat ( J01, J02, J03 etc ....jusquà J38 ).

Ce que je souhaiterai, c'est retrouver dans l'onglet récap, le report de chaque journée pour 3 choses : ( dans les cellules prévues à cet effet ) :

1) Le nombre de points obtenu pour chaque équipe pour chaque journée

2) Le nombre de buts marqués pour chaque équipe et pour chaque journée

3) L e nombre de buts encaissé pour chaque équipe et pour chaque journée

j'ai mis un exemple du résultat souhaité dans le fichier joint ( en prenant 3 journées pour exemple )

Merci par avance de s’intéresser à mon sujet.

30essai-l2.xlsm (20.95 Ko)

Mamarus

Hello,

Un premier test par un semi novice d'Excel.

Par contre 38 onglets ça me semble beaucoup .. A voir si il existe une limitation. Pourquoi tu ne rassembles pas toutes les journée dans un même onglet ?

Cordialement,

Bonjour Ergotamine,

Merci pour s'être intéressé à mon sujet, cependant ce que je t'ai envoyé est un modèle, j'ai essayé d'adapter tes formules dans mon fichier RECAP mais cela ne fonctionne pas. dans mon fichier, j'ai des colonnes en +, j'ai rajouté mais rien n'y fait, j'ai essayé de décrypter tes formules , ... pas tout compris.

Puis je t'envoyer un MP

Merci,

Mamarus

Oui oui pas de soucis envoie moi ton fichier en MP si tu veux je vais essayer de l'adapter

MP envoyé,

pas de possibilité d'envoi du fichier, trop lourd,

peut tu m'envoyé ton adresse mail en MP

Merci,

Mamarus

Bonjour à tous,

Attention à l'orthographe du nom de tes équipes ---->Montbéliard

Le nom de tes feuilles doivent aussi correspondre avec le nom des différents en-têtes de colonne de ta feuille "Recap"

A tester :

Option Explicit
Sub ventile()
Dim e, i As Long, j As Long
Dim ws As Worksheet, dico As Object
Dim myAreas As Areas, myArea As Range
    Set dico = CreateObject("Scripting.Dictionary")
    For Each e In Array("Nombre de points", "Nombre de buts marqués", "Nombre de buts Encaissés")
        Set dico(e) = CreateObject("Scripting.Dictionary")
        dico(e).CompareMode = 1
        For Each ws In Worksheets
            If ws.Name <> "Recap" Then
                Set dico(e)(ws.Name) = CreateObject("Scripting.Dictionary")
                dico(e)(ws.Name).CompareMode = 1
                With ws.Range("a1").CurrentRegion
                    For i = 2 To .Rows.Count
                        If Not IsEmpty(.Cells(i, 3).Value) And Not IsEmpty(.Cells(i, 4).Value) Then
                            Select Case e
                                Case "Nombre de points"
                                    If .Cells(i, 3).Value = .Cells(i, 4).Value Then
                                        dico(e)(ws.Name)(.Cells(i, 1).Value) = 1
                                        dico(e)(ws.Name)(.Cells(i, 5).Value) = 1
                                    Else
                                        If .Cells(i, 3).Value > .Cells(i, 4).Value Then
                                            dico(e)(ws.Name)(.Cells(i, 1).Value) = 3
                                            dico(e)(ws.Name)(.Cells(i, 5).Value) = 0
                                        Else
                                            dico(e)(ws.Name)(.Cells(i, 1).Value) = 0
                                            dico(e)(ws.Name)(.Cells(i, 5).Value) = 3
                                        End If
                                    End If
                                Case "Nombre de buts marqués"
                                    dico(e)(ws.Name)(.Cells(i, 1).Value) = .Cells(i, 3).Value
                                    dico(e)(ws.Name)(.Cells(i, 5).Value) = .Cells(i, 4).Value
                                Case "Nombre de buts Encaissés"
                                    dico(e)(ws.Name)(.Cells(i, 1).Value) = .Cells(i, 4).Value
                                    dico(e)(ws.Name)(.Cells(i, 5).Value) = .Cells(i, 3).Value
                            End Select
                        End If
                    Next
                End With
            End If
        Next
    Next
    Application.ScreenUpdating = False
    On Error Resume Next
    Set myAreas = Sheets("Recap").Columns(1).SpecialCells(2).Areas
    On Error GoTo 0
    If Not myAreas Is Nothing Then
        For Each myArea In myAreas
            With myArea.CurrentRegion
                If dico.exists(.Cells(1, 1).Value) Then
                    For j = 2 To .Columns.Count
                        If dico(.Cells(1, 1).Value).exists(.Cells(1, j).Value) Then
                            For i = 2 To .Rows.Count
                                If dico(.Cells(1, 1).Value)(.Cells(1, j).Value).exists(.Cells(i, 1).Value) Then
                                    .Cells(i, j).Value = dico(.Cells(1, 1).Value)(.Cells(1, j).Value)(.Cells(i, 1).Value)
                                End If
                            Next
                        End If
                    Next
                End If
            End With
        Next
    End If
    Set myAreas = Nothing
    Set dico = Nothing
    Application.ScreenUpdating = True
End Sub

klin89

C'est joli ces formes incrémentées ... Vu de loin !

Idem pour ma feuille, en effet j'ai modifié moi même le nom du club c'était pas la même orthographe. Et même contrainte le nom de la feuille doit être le même que la cellule à laquelle je fais référence.

A voir laquelle tu préfères.

Bonjour Klin89,

Merci pour le travail qui a été fait, sauf que je suis plus que novice en vba, je ne peux pas exploiter cela comme je le voudrai, je serai plutôt sur de la formule classique, je dois en fait récuperer le résultat de ces demandes pour pouvoir partir sur d'autres calculs ensuite.

cela dit , cela sera utile pour de l'arbitrage.

Merci

Mamarus

================================================

A l'attention d'Ergotamine,

Bonjour,

As tu eu le temps d'adapter les formules du fichier ?

Merci

Mamarus

Rechercher des sujets similaires à "report donnees onglets gestion ligue"