VBA - créer des horaires

thomas4530

XLDnaute Junior
Bonjour,

Plus ou moins expert en Excel, je me lance dans le VBA avec quelques difficultés mais surtout un délai de réalisation très court.

Je souhaiterais, au départ d'une feuille Excel reprenant l'ensemble des horaires des étudiants d'une école pouvoir automatiser la création des horaires des professeurs.

Dans le fichier que je place en pièce jointe, la feuille "Données" reprend tous les horaires des étudiants (ici 4 classes 1PMA, 1PMB, 1PMC, 1PMD) avec à chaque fois le nom du cours, un code cours, le nom du professeur et un local.

Pourriez-vous m'aider à construire le module VBA qui me permettrait, par exemple de construire automatique la feuille de Jean (je créerai évidemment autant de feuille "Jean" qu'il n'y a de professeurs à l'école (environ 100)) ? Sur la feuille Jean, je souhaiterais qu'apparaisse:
- sur la feuille de Jean, en C4 le code PG 1PMA - en D4 PG 1PMB - en E4 PG 1PMC - en E4 PG 1PMD... mais évidemment pas le cours donné par Marie.
- sur la feuille de Jean en AD4 le local du cours PG 1PMA (à savoir L-001), en AE4 le local du cours de PG 1PMB (à savoir L-002) etc etc.

Un tout grand merci pour votre aide,

Thomas
 

Pièces jointes

  • Forum.xlsx
    71.9 KB · Affichages: 40
  • Forum.xlsx
    71.9 KB · Affichages: 46
  • Forum.xlsx
    71.9 KB · Affichages: 45

sousou

XLDnaute Barbatruc
Re : VBA - créer des horaires

Bien......
Ici joint une tentative
Elle est calquée sur ton fichier, ce n'était sans doute pas la meilleur manière de procéder, mais je me suis conformé exactement à ton travail.
Remplis tes données créer des feuilles au nom de tes profs et lance la macro prof()
Soit conforme à la case, et ne change rien à la structure......
 

sousou

XLDnaute Barbatruc
Re : VBA - créer des horaires

Re
J'ai sans doute oublié.
J'en ai profité pour ajouter des choses.
Une feuille modèle avec un bouton....
Une feuille data avec la liste des profs.
Clic sur le bouton et choisi de créer un ou tous les prof ou d'effacer un prof
Il manque quelque controles, mais pas le temps pour le moment...
A suivre suivant tes remarques..
 

Pièces jointes

  • planning prof.xlsm
    117 KB · Affichages: 41

thomas4530

XLDnaute Junior
Re : VBA - créer des horaires

Merci pour ta réponse Sousou. Je suis vraiment impressionné !

En fait, je souhaiterais travailler dans l'autre sens. J'essaye de m'expliquer...

On aurait à la base:
- Une feuille reprenant toutes les données (feuilles "Données" dans la pièce jointe)
- Une feuille professeur reprenant uniquement les données du professeur (feuille "Jean" dans la pièce jointe)

L'idée serait d'insérer un bouton d'action dans la feuille "Jean" afin que dans la feuille de Jean n'apparaissent que ses cours (horaire de gauche) et les locaux de ses cours (horaire de droite). Si j'exprime cela en terme de processus, l'ordre à donner à Excel serait: au départ de la feuille de Jean, va rechercher dans la feuille "données" toutes les informations qui concernent Jean et synthétise-les dans la feuille Jean.

Petit détail, si j'apporte des modifications dans la feuille de données, je souhaiterais qu'en cliquant sur le bouton dans la feuille de Jean, ces modifications soient prises en compte (ainsi, si je supprime dans la feuille "données" un cours à Jean, il devrait se supprimer dans la feuille "Jean").

Évidemment, je créerais autant de feuilles qu'il n'y a de professeur et je renommerai chacune des feuilles en fonction du nom du professeur.

Est-ce que tu me comprends ?

Un tout grand merci pour ton aide.
 

Pièces jointes

  • Forum 2.xlsx
    111.7 KB · Affichages: 30
  • Forum 2.xlsx
    111.7 KB · Affichages: 33
  • Forum 2.xlsx
    111.7 KB · Affichages: 30
Dernière édition:

sousou

XLDnaute Barbatruc
Re : VBA - créer des horaires

Re
Pas bien compris
Pour moi c'est ce que cela fait sauf que le bouron n'est pas dans la feuille jean
Je créer la feuille Jean en décochant 'créer toutes les feuilles' c'est pour toi la manière de créer chaque feuille pour chaque prof.
Quand tu modifies les données, tu effaces la feuille jean et la recrées ainsi tes données son mise à jour
Mais je n'ai peu-être rien compris??
 

thomas4530

XLDnaute Junior
Re : VBA - créer des horaires

Bonjour Sousou,

Vu l'urgence, je crois que je vais terriblement simplifier ma demande.

Tu trouveras en pièce jointe, mon fichier excel.

J'ai à la base la feuille "Données". Manuellement, j'ai crée les feuilles "Professeur 1" - "Professeur 2" - "Professeur 3" (je renommerai ces feuilles avec le nom des collègues manuellement par la suite). Tu remarqueras que la feuille "Données" et les feuilles "Professeurs sont identiques. Dan la feuille "Données", je n'indiquerai rien dans la première grille. J'écrirai uniquement dans les grilles "1PMA", "1PMB", "1PMC".

Afin que dans les feuilles de chaque Professeur n'apparaissent que les infos qui les concernent, je voudrais développer une procédure du type:

Pour la feuille "Professeur 1":
si E51 = Prof 1 alors copie C51, D51, E51, F51 (de la feuille données) en C51, D51, E51, F51 (de la feuille "Professeur 1").
si E52 = Prof 1 alors copie C52, D52, E52, F52 (de la feuille données) en C52, D52, E52, F52 (de la feuille "Professeur 1").
si E53 = Prof 1 alors copie C53, D53, E53, F53 (de la feuille données) en C53, D53, E53, F53 (de la feuille "Professeur 1").
si E54 = Prof 1 alors copie C54, D54, E54, F54 (de la feuille données) en C54, D54, E54, F54 (de la feuille "Professeur 1").

Etc etc pour la plage E51-E177, M51-M177, Q51-Q177, V51-V177 (pour le lundi).

Si possible, j'aurais voulu le texte à indiquer en SUB.

Merci pour ton aide.
 

Pièces jointes

  • Forum 2.xlsx
    127.3 KB · Affichages: 31
  • Forum 2.xlsx
    127.3 KB · Affichages: 34
  • Forum 2.xlsx
    127.3 KB · Affichages: 36
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 327
Membres
103 517
dernier inscrit
hbenaoun63