Bonjour à tous,
alors voilà. Après avoir brillament réussi une matrice excel avec des codes vba pour la phase finale de la Coupe du Monde en Allemagne le mois dernier. Je me suis lancé la semaine derniere dans un classeur excel pour le championnat de France de L1 saison 2006-2007.
Et là... je n'en puis plus lol je me suis résigné à vous balancer tout mon fichier avec toutes mes problématiques afin que vous veniez à mon secours lol
donc, mon classeur comporte 4 feuilles (pour le moment).
Ce lien n'existe plus
La premiere : "L1 06-07" (c'est la page principale, la seule qui sera visible à la fin. Celle où on saisit les scores, et où l'on peut voir les anciens également, ainsi que les prochaines journées).
La deuxieme : "BDD". (Tous les matchs du championnat ont été enregistrées ici par la magie de la conversion) et c'est sur cette feuille que les "buts p" et les "buts c" seront inscrit temporairement par rapport à la saisie de la feuille principale "L1 06-07".
La troisième : "Scorebackup" (cette feuille est la vraie Base de donnée. Car tous les scores et les chiffres inscrits ici sont quasi-définitif. Hormis biensur si l'ont resaisi un autre score pour un match déja joué. Mais c'est définitif par rapport à la deuxieme feuille. Et justement, les chiffres sont directement issus de la deuxieme feuille.
La quatrieme :"TCD" c'est le tableau croisé dynamique relié directement à la base de donnée précédente. Et c'est en partie grâce à ce tableau, que les matchs de tel ou tel journée s'afficheront sur la feuille principale "L1 06-07".
Les problèmes auquel je suis confronté ne concernent pour le moment aucunement les points par équipe, avec le classement dans le tableau, etc... ça , logiquement, je saurai faire.
Mais le PROBLEME ici, c'est de rendre le petit encadré de "saisie des scores" sur la page principale en haut à gauche, parfait.
Or,c'est assez complexe.
Car , grâce à la liste déroulant que j'ai créée sur le numéro de journée, je veux que les matchs correspondants apparaissent, ainsi que les scores, si cette journée a déja été jouée. Et si cette journée n'a pas été jouée, il me faut bien évidemment des cellules de saisie vierges, pretes à recevoir le score, qui sera à son tour prêt à etre copié dans la bdd puis le scorebackup.
Je vous explique maintenant la façon dont je veux prodécer:
1) Si je sélectionne la liste déroulant en B5 de "L1 06-07" ; alors la date en B44 se met à jour (ça j'ai réussi à le faire), et tous les matchs avec tous les scores doivent également se mettre à jour à partir de la feuille "TCD" (j'ai fait une macro evenementielle sur la feuille "L1 06-07", mais , en fait les matchs copiés vers la feuille principale sont ceux en cours sur la feuille "tcd", ce qui fait que le fait de changer de journée prend les matchs de l'ancienne journée, enfin ceux qui sont à ce moment précis sur la feuille "tcd". Il y a un temps de décalage.)
Logiquement, tous mes matchs s'affichent ainsi que tous les scores, ou alors des cellules vides si le match n'a pas encore été joué.(quand le probleme de timing aura été réglé)
2) Une fois, ce premier affichage réussit; je passe à la saisie des scores si les matchs n'ont pas encore été joués (ou alors modification de score).
Grâce aux formules rentrées dans les colonnes G et H de la feuille "bdd" ; les scores saisis sur "L1 06-07" sont enregistrés provisoirement sur la feuille"bdd".(tant que la liste déroulante ne change pas de journée).
3) Désormais, je souhaite qu'à l'instant où des scores ont été inscrit automatiquement dans "bdd", déclenchés par une saisie en "L1 06-07", une macro evenementielle se déclenche et copie les cellules non-vides des colonnes G et H de "bdd", dans les meme cellules sur "Scorebackup".
Comme ça, les scores saisies sont directement copiés définitivement dans scorebackup et ne restent pas temporaires comme sur "bdd".
Pour cela, j'ai tenté une macro evenementielle worksheet_change sur la feuille "bdd". En fait, ça marche bien, mais le probleme, c'est que les calculs automatiques via des formules ne sont pas considérés comme du worksheet_change. Donc en gros, la macro ne se déclenche pas automatiquement.
4) Logiquement, à ce stade, la base de donnée de "scorebackup" se remplit au fur et à mesure. Tout est prêt pour le TCD en feuille 4. Ce dernier me sert d'arriere chambre pour établir mes 10 matchs sur la plage A28:F47. Sur cette plage, je fait appel à la fonction BDLIRE pour retrouver léquipe adverse et les scores dans "scorebackup". Ainsi tout est prêt pour se copié sur le petit encadré des scores sur la feuille principale "L1 06-07", l'ordre est respecté.
Pour en revenir au tcd, j'ai fait une petite macro evenement dans "thisworkbook", avec un worksheet_change sur la cellule B5 (donc la liste déroulante en page principale). Et ceci, provoque une mise à jour du TCD en choisissant de sélectionner en page , la journée en cours.(grâce à la cellule adjacente)
Une derniere petite fantaisie que j'ai essayé de faire, est de mettre en gras constamment l'équipe vainqueur ainsi que son score dans le petit tableau de la page principale "L1 06-07". Au début , ça marchait, puis maintenant ça merde.
Voilà, une fois que j'aurais terminé ce petit encadré des scores. Je n'aurais plus qu'a établir le classement, mais ça je men chargerai tout seul, j'y arrive bien.
Je suis sur que j'ai été long et vraiment pas clair dans mes explications, mais pour ceux qui auront le courage de me lire et de me d'aider, je les remercie grandement par avance.
MERCI
PS: dans les bases de données, il y a 2 fois les meme matchs. Mais c'est normal. Il ne faut tenir compte que de la premiere partie jusqu'à la ligne 381.
alors voilà. Après avoir brillament réussi une matrice excel avec des codes vba pour la phase finale de la Coupe du Monde en Allemagne le mois dernier. Je me suis lancé la semaine derniere dans un classeur excel pour le championnat de France de L1 saison 2006-2007.
Et là... je n'en puis plus lol je me suis résigné à vous balancer tout mon fichier avec toutes mes problématiques afin que vous veniez à mon secours lol
donc, mon classeur comporte 4 feuilles (pour le moment).
Ce lien n'existe plus
La premiere : "L1 06-07" (c'est la page principale, la seule qui sera visible à la fin. Celle où on saisit les scores, et où l'on peut voir les anciens également, ainsi que les prochaines journées).
La deuxieme : "BDD". (Tous les matchs du championnat ont été enregistrées ici par la magie de la conversion) et c'est sur cette feuille que les "buts p" et les "buts c" seront inscrit temporairement par rapport à la saisie de la feuille principale "L1 06-07".
La troisième : "Scorebackup" (cette feuille est la vraie Base de donnée. Car tous les scores et les chiffres inscrits ici sont quasi-définitif. Hormis biensur si l'ont resaisi un autre score pour un match déja joué. Mais c'est définitif par rapport à la deuxieme feuille. Et justement, les chiffres sont directement issus de la deuxieme feuille.
La quatrieme :"TCD" c'est le tableau croisé dynamique relié directement à la base de donnée précédente. Et c'est en partie grâce à ce tableau, que les matchs de tel ou tel journée s'afficheront sur la feuille principale "L1 06-07".
Les problèmes auquel je suis confronté ne concernent pour le moment aucunement les points par équipe, avec le classement dans le tableau, etc... ça , logiquement, je saurai faire.
Mais le PROBLEME ici, c'est de rendre le petit encadré de "saisie des scores" sur la page principale en haut à gauche, parfait.
Or,c'est assez complexe.
Car , grâce à la liste déroulant que j'ai créée sur le numéro de journée, je veux que les matchs correspondants apparaissent, ainsi que les scores, si cette journée a déja été jouée. Et si cette journée n'a pas été jouée, il me faut bien évidemment des cellules de saisie vierges, pretes à recevoir le score, qui sera à son tour prêt à etre copié dans la bdd puis le scorebackup.
Je vous explique maintenant la façon dont je veux prodécer:
1) Si je sélectionne la liste déroulant en B5 de "L1 06-07" ; alors la date en B44 se met à jour (ça j'ai réussi à le faire), et tous les matchs avec tous les scores doivent également se mettre à jour à partir de la feuille "TCD" (j'ai fait une macro evenementielle sur la feuille "L1 06-07", mais , en fait les matchs copiés vers la feuille principale sont ceux en cours sur la feuille "tcd", ce qui fait que le fait de changer de journée prend les matchs de l'ancienne journée, enfin ceux qui sont à ce moment précis sur la feuille "tcd". Il y a un temps de décalage.)
Logiquement, tous mes matchs s'affichent ainsi que tous les scores, ou alors des cellules vides si le match n'a pas encore été joué.(quand le probleme de timing aura été réglé)
2) Une fois, ce premier affichage réussit; je passe à la saisie des scores si les matchs n'ont pas encore été joués (ou alors modification de score).
Grâce aux formules rentrées dans les colonnes G et H de la feuille "bdd" ; les scores saisis sur "L1 06-07" sont enregistrés provisoirement sur la feuille"bdd".(tant que la liste déroulante ne change pas de journée).
3) Désormais, je souhaite qu'à l'instant où des scores ont été inscrit automatiquement dans "bdd", déclenchés par une saisie en "L1 06-07", une macro evenementielle se déclenche et copie les cellules non-vides des colonnes G et H de "bdd", dans les meme cellules sur "Scorebackup".
Comme ça, les scores saisies sont directement copiés définitivement dans scorebackup et ne restent pas temporaires comme sur "bdd".
Pour cela, j'ai tenté une macro evenementielle worksheet_change sur la feuille "bdd". En fait, ça marche bien, mais le probleme, c'est que les calculs automatiques via des formules ne sont pas considérés comme du worksheet_change. Donc en gros, la macro ne se déclenche pas automatiquement.
4) Logiquement, à ce stade, la base de donnée de "scorebackup" se remplit au fur et à mesure. Tout est prêt pour le TCD en feuille 4. Ce dernier me sert d'arriere chambre pour établir mes 10 matchs sur la plage A28:F47. Sur cette plage, je fait appel à la fonction BDLIRE pour retrouver léquipe adverse et les scores dans "scorebackup". Ainsi tout est prêt pour se copié sur le petit encadré des scores sur la feuille principale "L1 06-07", l'ordre est respecté.
Pour en revenir au tcd, j'ai fait une petite macro evenement dans "thisworkbook", avec un worksheet_change sur la cellule B5 (donc la liste déroulante en page principale). Et ceci, provoque une mise à jour du TCD en choisissant de sélectionner en page , la journée en cours.(grâce à la cellule adjacente)
Une derniere petite fantaisie que j'ai essayé de faire, est de mettre en gras constamment l'équipe vainqueur ainsi que son score dans le petit tableau de la page principale "L1 06-07". Au début , ça marchait, puis maintenant ça merde.
Voilà, une fois que j'aurais terminé ce petit encadré des scores. Je n'aurais plus qu'a établir le classement, mais ça je men chargerai tout seul, j'y arrive bien.
Je suis sur que j'ai été long et vraiment pas clair dans mes explications, mais pour ceux qui auront le courage de me lire et de me d'aider, je les remercie grandement par avance.
MERCI
PS: dans les bases de données, il y a 2 fois les meme matchs. Mais c'est normal. Il ne faut tenir compte que de la premiere partie jusqu'à la ligne 381.
Dernière édition: