VBA, copier des cellules en fonction de plusieurs critères en cascade
Bonjour cher Forum,
Je suis novice en VBA mais je me bats. Merci au passage au forum car j'ai beaucoup appris en vous lisant.
J'ai développé un Excel qui m'aide à récupérer les notations des professeurs qui travaillent au sein de mon centre de formation. L'idée après cette recup est de faciliter la tache de l'équipe quant à l'organisation des rattrapages (ou non) des apprenants.
Bien que j'ai pu avancer sur tout ce qui est amont par de multiples appli VBA, là je SECHE TOTAL.
Ma demande n'est pas facile à exprimer, aussi je joins une partie de mon fichier. Cette feuille est le résultats ordonnées de toutes les notes saisies par les enseignants.
En somme :
Les matières, pouvant aller jusqu'au nombre de 36, sont ordonnées par BLOC de compétence. Bloc 1, Bloc 2 etc... jusqu'au Bloc 9. (la matrice du fichier joint donne en effet la possibilité de caler jusqu'à 36 matières dans chaque BLOC, le petit "OK" qui figure dans la ligne 1 est la signal de l'activation de la matière de la même colonne, mais ceci est secondaire)
Certains BLOC de compétence ont davantage de matières que d'autres. Tout dépend de l'architecture pédagogique.
Mon problème :
Pour valider un bloc, la moyenne de celui-ci doit être >= à 10. (moyenne par coefficients des matières qui le composent). Un autre critère
Lorsque la moyenne du BLOC est < 10, l'apprenant doit repasser les matières <10 du même bloc.
Si sa moyenne est >= à 10. Pas de soucis.
L'analyse humaine de ce tableau, malgré les couleur (Rose pour le rattrapage) est un enfer car il faut faire des filtres successifs. Puis reperer les apprenants concernés, leur écrire afin de les informer du rattrapage et organiser la session d'exam. Sans oublier de prévenir le professeur que X étudiants attendent un nouveau sujet.
L'exemple en PJ est celui d'une seule classe. J'en ai 11.
L'idée est donc de créer une macro qui regarde pour chaque colonne ECTS BLOC 1, puis BLOC 2 etc., les valeurs = 0 (ou dans chaque colonne moyenne BLOC les valeurs <10). Puis, qu'elle copie les cellules (classe, nom, prénom email) des apprenants dont LA matière du BLOC concerné est <10. avant de les ordonner et classer l'ensemble des apprenants concernés par un rattrapage dans la matière X.
Puis, la suite pour chaque matière dans chaque BLOC.
Afin de visualiser ma demande, j'ai fait un exemple à la main de ce que je rêverai d'obtenir dans la feuille RAT-B1.
Un tel tableau nous permettrait de visualiser en une seule feuille la situation et procéder à la logistique.
Je ne sais même pas si cela est possible.
Quoiqu'il en soit, je vous remercie par avance de votre aide.
Pourquoi les moyennes ne sont pas le résultat d'un calcul?
puisque l'on connait notes et Coef.
Pourquoi les colonnes ECTS ne sont pas le résultat d'une formule? excel sait faire!
Pourquoi le Nb de rattrapages n'est pas le résultat d'une formule?
Idem pour la moyenne de la classe?
Ces tableaux résultats par matières ne pourraient-ils pas être cote à cote dans la feuille RAT-1?
Plus facile à créer et à maintenir
Si des colonnes sont manquantes ou futures donner en le nombre pour ne plus avoir a retoucher la structure générale (des 2 feuilles)
Les colonnes Masquer/Afficher pourraient elles recevoir des matières?
Les apprenants au rattrapage apparaîtrons dans l'ordre qu'ils sont dans la feuille d'origine, est ce gênant?
"Une partie de mon fichier"! la partie de votre fichier que vous ne montrez pas a t elle une incidence sur le contenu des deux feuilles actuelles?
Merci
La clarté du problème raccourci le chemin vers le résultat
Bonjour,
Merci pour ce retour.
En fait pour simplifier les fichier, j'ai fait un copier/coller Valeurs des données de mon tableur (plus complet). Bien entendu, dans l'ordinal, assez lourd, tous ces calculs sont réalisés automatiquement.
Je propose de le joindre ici. Attention, il y pas mal de fonctions Exports ou imports à partir de tableurs externes qui qui ne seront pas en PJ. Toutefois, le fichier est autonome en terme de calcul.
Afin que tu comprennes le contexte :
Le sens de lecture conseillé afin de comprendre et remonter le fil logique :
Les feuilles "ENCODAGE-X" rouges sont maitresses des feuilles "ANALYSE-X" jaunes
Chaque DUO est lié à une classe spécifique
LEs Feuilles "NOTES-X" sont pour une partie escalves de "ENCODAGE-X" et pour une autre maitres de "ENCODAGE-X"
le MP temporaire pour débloquer les feuilles est : pedago2020PK pour les feuilles rouge et jaune
Afin que tu comprennes le contexte : le logiciel s'appelle KINK
- J'encode mon architecture pédagogique dans "ENCODAGE-X" dans lequel je peux programmer jusque 36 matières que je réparti parmi 9 BLOCs de compétences
- Cela génère des matrices standardisées et simplifiées destinées aux profs avant d'être externalisées sur un serveur de partage sécurisé
- Les profs saisissent
- KINK récupère les notes et commentaires
- Les renvoie dans "ENCODAGE-X"
- le traitement des datas se fait dans "ANALYSE-X"
- Mon problème est donc sur cette partie : l'analyse des rattrapages
Pour tes questions :
- Ces tableaux résultats par matières ne pourraient-ils pas être cote à cote dans la feuille RAT-1?
Plus facile à créer et à maintenir
Si, c'est possible. L'idée est de pouvoir surtout repérer facilement les étudiants concernés et leur écrire en une seule sélection. L'idée est aussi de voir en un seul coup d'oeil comment organiser les sessions de rattrapages en planifiant les créneaux, en avertissant les profs concernés pour qu'ils préparent un nouveau sujet.
Donc, tout ce qui évite les filtre en cascade et une meilleur lisibilité, une automatisation, est le bienvenu.
- Si des colonnes sont manquantes ou futures donner en le nombre pour ne plus avoir a retoucher la structure générale (des 2 feuilles), Les colonnes Masquer/Afficher pourraient elles recevoir des matières?
Pas certain de comprendre ta question. Je t'invite à regarder dans le fichier joint (26 MO) les feuilles "ANALYSE-X"
Ma logique est matricielle. J'ai conçu cette matrice afin de rester libre de répartir des matières à ma guise dans n'importe quel bloc d'une année sur l'autre. Ainsi, l'année prochaine, nous pourrions avoir 10 matières complémentaires en BLOC 1 qu'on appellerait BLOC marketing et idem dans d'autre BLOC (communication etc). Ainsi, partant du principe que 36 matières par an et par classe est un MAX, j'ai conçu une matrice de 9 blocs pouvant accueillir jusque 36 matière chacune.
La fonction AFFICHER/ MASQUER, permet ici d'éliminer les colonnes qui n'accueillent pas de matière et ne garder que celles qui ont un "OK" (en première ligne dans ANALYSE). (peut-être un manque de compétences VBA de ma part mais une logique solide).
Ma logique matricielle me permet d'avoir une flexibilité sur le nombre de matières par BLOC. Et de ne faire aucune manip d'une année sur l'autre qui serait liée à un changement de contenu.
- Les apprenants au rattrapage apparaîtrons dans l'ordre qu'ils sont dans la feuille d'origine, est ce gênant?
Je pense que cela n'est pas un problème. Toute la question est : J'ai besoin de savoir qui ? repasse quoi ? L'entrée par mati§re est idéale car nous pouvons planifier le rattrapage de la mati§re en sachant qui attendre pour cette session.
il est vrai que l'autre question aurait été : Quelles sont les matière à rattraper pour tel apprenant. Mais, cela sera dans un second temps
Alors,
Pour ne rien te cacher KINK est devenu un gros bébé. 26 M0.
J'ai pensé idéal d'externaliser le traitement des rattrapage pour le soulager un peu.
L'idée est de sortir les feuilles "ANALYSE-X" et "ENCODAGE-X"
J'essaie de joindre KINK
et un model projeté manuellement de ce que j'aimerais
Sachant une fois de plus que ma logique n'est peut-être pas la meilleure.
Encore merci d'avoir réagi à ma demande d'aide.
Pierre
Le fichier etant trop volumineux. le forum me refuse le partage
je ne peux rien uploader :/
Pas de wetrasnefrt non-plus donc je ne peux que placer ce petit fichier :/