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.
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