Traitement de données - VBA
Bonjour à tous !
Je viens à votre aide car j'aimerai ajouter un élément à mon fichier qui serait de créer une macro qui réalise un reporting des séries maximales atteint par chaque équipe sur une feuille quelques lignes plus bas suivants les matchs.
J'ai mis un exemple de ce que j'aimerai avoir dans l'onglet 20 équipes. Est-il possible de construire ce genre de tableau via VBA en créant une boucle qui partirai du tableau précédant en disant :
"Si le nom de l'équipe est différente de celle du dessus, then écris sur une nouvelle ligne du tabelau en dessous le nom de la nouvelle équipe avec les 1,5, 2,5 et indiques-moi sur la ligne en dessous la série maximal de 1,5 et 2,5 buts pour cette équipe ?" et répéter cette boucle pour l'ensemble des équipes figurant sur la feuille.
Je vous envoie le fichier ci-joint
Je vous remercie par avance pour votre aide !
Je vous souhaite à tous un bon après-midi
Adrien
Hello,
Je te remercie d'avoir consacré une partie de ton temps sur mon post
Écoutes ça à l'air de super bien marché ! Je te remercie beaucoup !
Prends soin de toi !
Laplacea
Bonjour,
Si jamais je souhaite analyser plus de statistiques, comme savoir s’il y a plus de 3,5 buts dans un match et créer la série qui lui correspond, comment est ce que je réécris la macro pour avoir le reporting des 3,5 buts et la série max comme ce que tu as fait dans la macro précedentes ? Peux-tu repartir de la macro précédente et réaliser le tableau avec le 3,5 buts en plus s'il te plait. J'aimerai voir ce qu'il faut modifier dans la macro pour voir comment je peux élargir la macro en augmentant les stats.
Je te remercie par avance et te souhaite un bon week-end !
Laplacea
Bonjour
voila qui est fait les modifications sont en gras italique souligné
fichier en PJ a tester
par contre une chose le tableau de reporting étant en dessous de ton tableau des équipes,
si tu oubli d'effacer manuellement ce reporting avant de lancer la macro le traitement plante
il est possible d'ajouter en début de macro une suppression automatique du reporting avant de faire le nouveau
a mon avis il serait encore mieux de mettre le reporting sur une autre feuille il serait plus accessible
dans tes noms de feuille j'ai enlevé l'accent de équipes ça provoque des caractères batards
Option Explicit
Sub reporting()
' declaration des variables
'declare feuilles Source
Dim fsource As Worksheet
'declare derniere ligne Source
Dim derligdsource As Long
' variables de boucle
Dim i As Long
Dim team(25) As String
Dim over1(25) As Integer
Dim over2(25) As Integer
Dim over3(25) As Integer
Dim titre(5) As String
Dim ligtab As Integer, ligencours As Integer
' initialisation
titre(1) = "NB FT G"
titre(2) = "Over 1,5"
titre(3) = "Over 2,5"
titre(4) = "Over 3,5"
titre(4) = "Max"
Set fsource = Worksheets("20 equipes avec tableau")
derligdsource = fsource.Cells(Application.Rows.Count, "C").End(xlUp).Row
ligtab = derligdsource + 8
ligencours = 0
team(1) = Cells(3, 3).Value
' traitement
For i = 3 To derligdsource + 1
If Cells(i, 3).Value <> team(ligencours) Then
ligencours = ligencours + 1
team(ligencours) = Cells(i, 3).Value
over1(ligencours) = Cells(i, 8).Value
over2(ligencours) = Cells(i, 10).Value
over3(ligencours) = Cells(i, 12).Value
Else
If Cells(i, 8).Value > over1(ligencours) Then
over1(ligencours) = Cells(i, 8).Value
End If
If Cells(i, 10).Value > over2(ligencours) Then
over2(ligencours) = Cells(i, 10).Value
End If
[u] If Cells(i, 12).Value > over3(ligencours) Then
End I[/u]f
End If
Next i
For i = 1 To ligencours - 1
Cells(ligtab, 2).Value = team(i)
Cells(ligtab, 3).Value = titre(1)
Cells(ligtab, 4).Value = titre(2)
Cells(ligtab, 5).Value = titre(3)
Cells(ligtab, 6).Value = titre(4)
ligtab = ligtab + 1
Cells(ligtab, 2).Value = titre(5)
Cells(ligtab, 4).Value = over1(i)
Cells(ligtab, 5).Value = over2(i)
Cells(ligtab, 6).Value = over3(i)
ligtab = ligtab + 3
Next i
End Sub
Excuse-moi de te répondre seulement maintenant, je te remercie pour cette macro ! Elle marche vraiment bien
Cependant, j'essaie d'étendre l'utilisation de la macro et je rencontre des difficultés
La macro fonctionne bien jusqu'au -4,5 buts. Néanmoins, quand j'essaie d'intégrer les données des + de 0,5HT, + de 1,5HT, -0,5 HT et -1,5 HT, la macro ne fonctionne pas et m'indique que des 0.
Est-ce normal ?
Également, j'aimerai pouvoir utiliser cette macro uniquement sur les onglets de la feuille de calcul que j'aurai sélectionnés avant d'utiliser la macro.
Est-ce possible avec cette macro ?
Je t'ai joint un fichier en PJ.
Je te remercie par avance et te souhaite un bon week-end pascal
Bien à toi.
Laplacea
Bonjour Laplacea
Néanmoins, quand j'essaie d'intégrer les données des + de 0,5HT, + de 1,5HT, -0,5 HT et -1,5 HT, la macro ne fonctionne pas et m'indique que des 0.
dans le fichier tu n'as pas laissé dans la macro l’intégration qui plantait
je ne peut donc pas te dire pourquoi par contre j'ai modifié la macro en fonction de ta demande (voir PJ) et ça marche
tu trouvera également un pdf avec les modifs surlignées
(certaines modifications n'étaient pas indispensable mais mettent simplement un peu de cohérence)
sinon pour le second point c'est certainement possible mais il faut préciser un peu ce que tu souhaite et de quoi tu parle quand tu dit onglet ?
A plus sur le forum
Hello papyg,
Je te remercie pour ton retour et pour le temps que tu consacres à me donner les moyens de comprendre, ta pédagogie est super ! Tout fonctionne de nouveau !
J'aimerais te demander s’il est possible avec ce que tu m'as envoyé d'exécuter cette macro uniquement sur les feuilles de calculs que j'aurai sélectionné auparavant ?
Merci beaucoup Papyg !
Prends soin de toi.
Laplacea
bonjour Adrien
c'est simple il suffit de mettre le nom de la feuille en variable
d'ajouter devant chaque référence à une cellule que c'est le nom de feuille de cette variable qu'il faudra prendre en compte
puis de rajouter une box ou tu saisi le nom complet de la feuille exemple Base ALL 18-19 (2) et le reporting sera fait en bas de la feuille en question
A plus sur le forum
Merci de ton retour !
Je n'ai pas très bien compris et surtout je ne sais comment la rédiger.
Est-ce que tu peux m'aider sur ce point ?
Je vais t'en demander un peu trop certainement, j'aimerai créer une macro ou compléter l'ancienne dans laquelle j'aimerai regrouper tous les tableaux des différentes pages, les uns en dessous des autres sur une feuille de calcul qui s'appellerait "Assemblage"
Crois-tu que c'est possible d'automatiser cela ?
Merci encore pour ta grande aide papyg !
Prends soin de toi.
Laplacea
Bonjour Adrien
ne t’inquiète pas pour ce que tu demande
je suis retraité j'aime beaucoup Excel et Vba que j'ai beaucoup utilisé dans ma vie active
j'ai fait également beaucoup de formation alors je continue et c'est un plaisir
sinon
premier point
Je n'ai pas très bien compris et surtout je ne sais comment la rédiger.
a tu testé la macro reporting de mon dernier envoi c'est intégré dedans (en gros pour te faire un test (je teste pas le bouton annuler par exemple)
second point
j'aimerai créer une macro ou compléter l'ancienne dans laquelle j'aimerai regrouper tous les tableaux des différentes pages, les uns en dessous des autres sur une feuille de calcul qui s'appellerait "Assemblage"
si je comprends bien ta demande tu rejoint ce qu'il me semble je te proposais il y a quelques temps
a savoir mettre le résultat du reporting sur une feuille à part
on pourrait comme tu le dit créer une feuille "Assemblage" par exemple et sur cette feuille mettre les un en dessous des autre le reporting des 3 feuilles avec pour chacun en titre le nom de la feuille dont il est issue
dis moi si j'ai bien compris et ce que tu en pense et on se lance la dessus
A plus sur le Forum
Je te remercie Papyg de ton retour et de m'accorder de ton temps même si tu me fais part que tu en as de disponible. C'est vraiment sympa de ta part !
Pour la macro :
Avant toute chose, j'aimerai ajouter un élément supplémentaire dans le tableau de la macro reporting. J'aimerai prendre en compte les séries de Victoire, nul et de défaites maximales de chaque équipe sur chaque feuille de calcul. Les séries sont les 3 dernières colonnes du tableau AQ:AS
En plus pour la macro "reporting", que j'ai ajouté dans ce nouvel excel. J'aimerais ajouté le nom de la feuille (à savoir des années "17-18";"14-15" à la colonne de gauche de chaque équipe. Cela me permettra de me repérer plus facilement dans le tableau de synthèse.
De plus, j'aimerais que la macro reporting s'exécute sur toutes les feuilles de calculs que j'aurai sélectionnés avant d'exécuter la macro. Dans le fichier joint, par exemple, je sélectionnerai les feuilles 13-14 jusqu'à 18-19.
Pour la feuille assemblage, je te propose un exemple de ce que j'aimerais que la macro compile. En clair, la feuille Assemblage serait la première feuille de calcul à gauche des feuilles à traiter et qu'elle ajoute les tableaux crées par la macro reporting de toutes les feuilles figurant à sa droite du haut vers le bas, comme tu peux le voir dans la feuille "Draft Assemblage" J'ajouterai un filtre dans la colonne B pour sélectionner l'équipe que je désire analyser comme "Arsenal" par exemple.
Je te remercie pour ton retour Papyg
Je suis à ta disposition.
Prends soin de toi.
Laplacea
ok bien
j’analyse tout ça demain
si j'ai besoin de renseignement je te passe un message
mais j'aime bien ta demande tu sais ce que tu veux et on tâtonne pas
A plus sur le forum
Bonjour Adrien
voilà j'ai revue la macro de fond pour que tu puisse paramétrer simplement tes reporting
tu trouvera en PJ le fichier modifié et une petite doc d'utilisation
tout cela est bien sur a tester
je ne pense pas avoir oublié quelque chose mais si tu as le moindre souci fait moi signe
A plus sur le forum
Hello Papyg,
J'espère que tu as la forme !
Ouah ça à l'air génial ce que tu as produit. Mais quand j'ouvre l'excel, sachant que j'utilise une version mac, il me fait part qu'il supprime des éléments au moment de l'ouverture du fichier et donc j'imagine la macro ... Est-ce normal ? Est-ce que je dois réaliser une manipulation particulière ?
Sinon peux-tu m'envoyer un pdf avec le code VBA ?
Je te remercie beaucoup Papyg, j'ai hâte de voir ce que ça donne !
Passes une bonne soirée et prends soin de toi.
Adrien
RE
ça va bien merci Adrien
en PJ la sub en pdf
porte toi bien
A plus
Gérard
Hello Papyg !
Super la macro ! Je t'en remercie vraiment !
Elle me donne envie d'effectuer quelques modifications pour clarifier le traitement des données.
1- Est-il possible de modifier le format utilisé dans la colonne A où l'on met le nom de la feuille où l'on extrait les données ? Par exemple "07-08" pour l'aoir sous cette forme direcement et eviter d'avoir le format dat qui s'applique.
2- A la suite de cette macro, j'aimerai une boucle qui supprime toutes les lignes indiquant le nom de la statistiques etudiées et de regrouper toutes les données ligne par la ligne.
J'aimerai passé de ça :
à ça :
pour pouvoir filtrer les données plus facilement.
3- Un point qui m'intéresserais énormément dans le traitement des données serait de créer sur cette feuille assemblage un nouveau tableau sous la même forme que ceux que l'on a fait sur chaque feuille de calcul, où l'on ferait un tableau par équipe qui prendrait le nombre maximal pour chacune des statistiques.
Par exemple, A partir de cette feuille "Assemblage", la macro analyserai toutes les lignes où l'équipe d'Arsenal est apparu et retiendrait le nombre maximal pour chacune des statistiques (Over 1,5, Over 2,5 ect.)
Tu peux partir du fichier avec lequel tu m'as envoyé.
Je suis à ta disposition si tu veux des éclaircissements
En tout cas merci beaucoup pour tout Papyg et prends soin de toi !
Laplacea
salut Adrien
pour le point 2 pas de problème j'y avait déjà un peu pensé.
détail je n'y connait absolument rien en foot (je pense ne jamais avoir vu un match) ceci pour te dire que je ne comprends pas forcément tes demandes du premier coup
pour le point 1 par exemple il me semblais que le nom de la feuille correspondait à l'exercice 17-18 = 2017-2018 donc comment arriver à 08-juil en partant de 17-18
pour le point 3 j'ai bien compris que tu voulais un bilan orienté équipe mais il faudrait me décrire un peu plus
ce que tu souhaite comme résultat avec un modèle si possible
ce que tu veux également comme traitement par exemple choisir une équipe et faire un bilan pour cette équipe ou autre chose
si tu peux répond moi déjà de suite sur le point 1 et je peux commencer de bosser les points 1 et 2 pendant que tu réfléchi sur le point 3
A plus
Gérard
Merci Papyg pour ton retour !
1- Tu as tout à fait raison "17-18" signifie bien 2017-2018. Le souci est qu'excel traduit le "07-08" en date et le convertit en 08 juillet 2020. J'aimerai simplement que la macro puisse modifier le format de la cellule en format texte par exemple pour bien avoir le nom de la feuille associé à la ligne du tableau.
3- Je t'ai mis en PJ un excel avec un exemple du tableau que j'aimerai avoir pour le point 3 et le point 2 en parallèle.
J'espère que je t'ai apporté des éclaircissements.
Je suis à ta disposition.
Laplacea