Bonsoir à toutes & à tous,
Je requiers votre afin de m'aider dans l'élaboration d'un modèle de fichier XL.
Mon modèle contient 3 feuilles "fixexs (Base, Compo, Récap) et de une à plusieurs feuilles nommées Stats X (où x est le nombre de feuilles de statistiques). J'ajoute une nouvelle feuilles de statisques par un bouton dont la macro est la suivante :
Code:
Sub AjoutFeuilles()
'Ajout de feuilles
Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count) 'Compte le nombre de feuille et copie après la dernière
Sheets(Sheets.Count).Select 'Sélectionne la dernière
ActiveSheet.Name = "Stats " & CInt(Mid(ActiveSheet.Name, 7, 1)) + 1 'Je récupère 1 dans "Stats 1 (2)" après la copie et ajoute 1Sheets("Stats 1").Select
End Sub
Dans ma feuille Base, c'est là que je mets mes effectifs (Numéros, Noms et Positions)
A chaque nouvelle saison, je fais une copie de ces 3 informations que je place à côté.
Bien évidemment, je change ma plage dans les formules liés à ces informations.
Voilà pour la mise en place. Ca à l'air compliqué mais c'est simple d'utilisation
Je souhaiterai faire un récapitulatif dans une feuille Récap. Ce récapitulatif porte sur les noms, les nb de buts, de passes...(R4 à Y35). C'est toujours la même plage de données des feuilles Stats.
Il peut y avoir plusieurs fois le même nom.
Pour chaque nom, il faudrait que cela additionne le nb de buts, de passes...
J'espère que ce n'est pas trop confus et que vous pourrez m'aider à solutionner.
Je joins un fichier d'exemple donct j'ai supprimé beaucoup de choses (mise en forme, macro) pour pouvoir l'envoyer en ZIP.
Re : Aide pour faire un récapitulatif de plusieurs feuilles
Bonsoir à toutes & à tous,
Merci Banzai64.
Je viens d'incorporer ta macro à mon fichier source. Cela marche très bien. Waou trop fort.
Il y a 3 choses :
1) Les en-têtes du tableau récapitulatif sautent. Noms, nb buts, nb passes...disparaissent. Est-ce qu'il est possible de remédier à ça ?
2) J'ai étudié la macro et je ne comprends pas grand chose. Serait-il possible d'avoir des commentaires sur le code ?
Code:
Sub Recap()
Dim I As Integer
Dim J As Integer
Dim Indice As Integer
Dim Lg As Long
Dim Lg_Dep As Integer
Dim Lg_Fin As Integer
Dim Sh As Worksheet
Dim Trouve As Boolean
Dim Nom As String
Dim Tablo()
With Sheets("Récap")
.Range("A2:G" & .Range("A65536").End(xlUp).Row).ClearContents
End With
Lg_Dep = 4
Lg_Fin = 26
ReDim Tablo(1 To 7, 1 To 1)
For Each Sh In Sheets
If Sh.Name Like "Stats *" Then
With Sh
For I = Lg_Dep To Lg_Fin
Nom = .Cells(I, "S")
Indice = 0
Trouve = False
For J = 1 To UBound(Tablo, 2)
If Nom = Tablo(1, J) Then
Indice = J
Trouve = True
Exit For
End If
Next J
If Indice = 0 Then
Indice = UBound(Tablo, 2)
End If
Tablo(1, Indice) = .Cells(I, 19)
For J = 2 To 7
Tablo(J, Indice) = Tablo(J, Indice) + Int(.Cells(I, 18 + J))
Next J
If Trouve = False Then
ReDim Preserve Tablo(1 To 7, UBound(Tablo, 2) + 1)
End If
Next I
End With
End If
Next Sh
Sheets("Récap").Range("A2:G" & UBound(Tablo, 2)) = Application.Transpose(Tablo)
End Sub
3) Pourquoi faut-il mettre
Code:
Option Explicit
Option Base 1
dans Déclarations.
Au départ, j'ai essayé sans mais j'avais une erreur sur
Code:
ReDim Preserve Tablo(1 To 7, UBound(Tablo, 2) + 1)
"Lindice n'appartient pas à la sélection"
En tout cas BRAVO et encore merci pour "ça". Je ne sais pas comment tu as trouvé ce code, je sur le q******* lol
Je tire ma révérence à tous les foromeuses et foromeurs pour les connaissances qu'ils partagent.