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.

capture d ecran 2020 03 20 a 13 17 14

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

9test-macro-2.xlsx (333.58 Ko)

Bonjour

petit VBA à tester

A plus sur le forum

7result-matchs.xlsm (370.27 Ko)

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

2result-matchs.xlsm (360.62 Ko)

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

7result-matchs.xlsm (395.00 Ko)

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

6test-serie.xlsm (691.29 Ko)

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

5macro-serie.pdf (13.41 Ko)
4serie-2.xlsm (804.51 Ko)

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

4serie-2.xlsm (803.84 Ko)

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

capture d ecran 2020 04 15 a 00 53 49

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.

capture d ecran 2020 04 15 a 00 55 23

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

1reporting.pdf (123.27 Ko)

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

2sub-reporting.pdf (18.57 Ko)

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 :

capture d ecran 2020 04 17 a 13 59 53

à ça :

capture d ecran 2020 04 17 a 13 59 58

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

Rechercher des sujets similaires à "traitement donnees vba"