Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Gestion d'emploi(s) du temps "magique"

r*zed

XLDnaute Junior
Bonjour à tous,

Voici un autre "cas" que je soumets aux bonnes volontés...

Dans ma pratique de la classe, j'ai des élèves qui vont et viennent au rythme des diverses prises en charge (thérapeutiques, médicales, éducatives, rééducatives, etc.) ou des temps d'intégration dans les autres classes (et oui, je précise que je suis en classe spécialisée...).

Pour les besoins de ma gestion de la classe, je construis un outil qui me permette de modifier d'un coup chaque emploi du temps individuel par rapport à celui de la classe et à celui des diverses prises en charge... Jusqu'ici, je le fais manuellement sous Word, mais c'est très lourd et pénible à gérer... L'automatisation des opérations via quelques formules et macros sous Excel devrait sérieusement me simplifier la vie et me faire gagner du temps...

Alors voilà, il y a mon emploi du temps générique, et en marge, hors impression, la liste des élèves et leur groupe de niveau.

Sur une 2e feuille, il y a l'emploi du temps des prises en charge thérapeutiques ou des temps d'intégration qui récapitule globalement les occupations hors de ma classe de tous mes élèves. Hors impression, j'aurais besoin d'une liste déroulante - là, je ne suis même pas sûr d'avoir placé la bonne "listbox" - pour sélectionner le type de prise en charge correspondant à une plage horaire définie dans l'emploi du temps.

Puis, il y a 3 boutons : un qui valide, un qui efface, un qui remet toutes les prises en charge à zéro (pratique, surtout en fin d'année... ou à la rentrée suivante).
Une fois la sélection validée, la mise en forme s'applique automatiquement dans l'emploi du temps, avec l'écriture à 90° (j'ai placé qqs exemples en manuel, pour aider à comprendre ce que je souhaite obtenir).

Sur la 3e feuille, il y a les emplois du temps individuels de chacun, reprenant dans l'emploi du temps générique uniquement ce qui concerne son groupe, tout en remplaçant de manière prioritaire les cellules de la feuille 2 concernées par les prises en charge s'il y en a.

J'ai donc déjà réalisé un "cadre vierge" de tout cela, regardé si certains avaient des discussions similaires sur le forum (ça m'a permis déjà de préciser mes idées, les possibilités,...), mais ne m'y connaissant pas en langage VBA, je ne sais pas du tout programmer mes boutons et obtenir le résultat attendu...

De même, pour les individuels, je ne parviens pas à formuler correctement l'action pour chaque cellule de l'emploi du temps "si rien sur EdT2, alors = EdT1 selon le groupe de l'élève (c'est surtout ça qui me bloque), sinon affiche = EdT2"...


Merci de votre aide,

Amicalement,

Romuald
 

Pièces jointes

  • Emploi du Temps.xls
    127.5 KB · Affichages: 885
  • Emploi du Temps.xls
    127.5 KB · Affichages: 807
  • Emploi du Temps.xls
    127.5 KB · Affichages: 825

r*zed

XLDnaute Junior
Re : Gestion d'emploi(s) du temps "magique"

Re,

Voilà l'essai que tu demandes... en espérant que cela va pouvoir éclairer tes lanternes...

Romuald
 

Pièces jointes

  • Essai_centrage.xls
    25.5 KB · Affichages: 115

Banzai64

XLDnaute Accro
Re : Gestion d'emploi(s) du temps "magique"

Bonsoir

Trouvé deux différences dans ton code par rapport au mien
Mais sans conviction

Dans module1 mets en remarque les deux lignes marquées en rouge

Code:
    .ClearContents
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    .WrapText = False
    .Orientation = 90
    .AddIndent = False
    .[COLOR="Red"]IndentLevel = 0[/COLOR]
    .ShrinkToFit = False
    [COLOR="Red"].ReadingOrder = xlContext[/COLOR]
    .MergeCells = True


Je n'y crois pas trop mais bon faut essayer

Si quelqu'un du forum peut m'expliquer ?

Merci par avance
 

r*zed

XLDnaute Junior
Re : Gestion d'emploi(s) du temps "magique"

Bonsoir,

et bien crois-y bien fort, mon ami, car en enlevant les 2 lignes en question, cette fois, ça fonctionne impeccable chez moi aussi désormais !

Youpiiiii !...

Merci encore, cette fois, c'est vraiment complet ! Rien à redire !

Amicalement,

Romuald
 

r*zed

XLDnaute Junior
Re : Gestion d'emploi(s) du temps "magique"

Coucou !

Eh bien, après quelques petits "nettoyage" afin de "maquiller" le document pour soigner les finitions, après avoir corrigé ici et là qqs petites bêtises, voilà donc la version qui devrait être, je pense, définitive...

Finalement, dans EdT3, j'ai préféré opter pour une lecture horizontale des plages de PCT, plus aisée pour mes élèves...

A l'usage, le seul "bug" restant que j'ai pu constater est une différence d'un quart d'heure dans la "message box" rappelant l'heure de début de la sélection en cours avant validation, et ce uniquement le matin (j'ai essayé de corriger, mais il faut choisir : soit le décalage est le matin, soit c'est l'après-midi... cela vient sûrement de la ligne "déjeuner"... la vilaine ! Bah, tant pis, ce n'est que le temps de vérifier la sélection, puis à la validation, on voit bien que la fusion s'est faite sur les bonnes lignes, alors, ce n'est vraiment pas dérangeant...). Bon à savoir quand même pour ceux qui veulent l'utiliser...

Je remercie donc une fois de plus chaleureusement Banzai64 pour sa contribution à la fois précieuse et rapide dans ce travail abouti... quel gain de temps, quelle facilité d'utilisation, quelle efficacité redoutable ! Bref, c'est purement génial ! MERCI !

Amicalement,

Romuald
 

Pièces jointes

  • Emploi du Temps (v. défin.).zip
    73.3 KB · Affichages: 209

solar94

XLDnaute Nouveau
Bonjour

super le projet. J'ai essayé d'ajouter la journée de mercredi mais lorsque je clique sur le bouton remise à zero : j'ai une erreur :


Sub ReInit_EdT3()
Dim Cel As Range
Dim Lg_Base As Byte ' Donnera la ligne de base du tableau correspondant
Dim Rep As String ' Contiendra le nom de la colonne

Application.ScreenUpdating = False
Feuil3.Select
For Each Cel In Feuil1.Range("O8:O19")
Lg_Base = Array(8, 38, 74, 104)((Cel.Row - 8) \ 3)
Rep = Array("C", "J", "Q")((Cel.Row - 8) Mod 3)
' Debug.Print Cel.Offset(0, -1), Rep; Lg_Base
If Cel = "A" Then
' Gr_A
[Gr_A].Copy Destination:=Feuil3.Cells(Lg_Base, Rep) ICI
Else
' Gr_B
[Gr_B].Copy Destination:=Feuil3.Cells(Lg_Base, Rep)
End If
Next Cel
Feuil2.Select
End Sub


Pourriez vous m'aider ? Merci.
 

Discussions similaires

Réponses
31
Affichages
1 K
Réponses
2
Affichages
330
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…