0% ont trouvé ce document utile (0 vote)
6 vues5 pages

Gestion des Horaires Scolaires

Transféré par

kelvin
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues5 pages

Gestion des Horaires Scolaires

Transféré par

kelvin
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Etape 1

Sub EnregistrerProfesseursCours()
Dim ws As Worksheet
Set ws = [Link]("Professeurs")

[Link](1, 1).Value = "Nom du Professeur"


[Link](1, 2).Value = "Cours"
[Link](1, 3).Value = "Charge Horaire (heures/semaine)"

' Exemple d'enregistrement


[Link](2, 1).Value = "Professeur A"
[Link](2, 2).Value = "Mathématiques"
[Link](2, 3).Value = 5

[Link](3, 1).Value = "Professeur A"


[Link](3, 2).Value = "Physique"
[Link](3, 3).Value = 4

[Link](4, 1).Value = "Professeur B"


[Link](4, 2).Value = "Chimie"
[Link](4, 3).Value = 5

' Ajouter d'autres enregistrements ici

End Sub

Étape 2

Sub DefinirClasses()

Dim ws As Worksheet

Set ws = [Link]("Classes")

[Link](1, 1).Value = "Nom de la Classe"

[Link](1, 2).Value = "Cours Spécifiques"

[Link](1, 3).Value = "Cours Tronc Commun"

' Exemple de définition

[Link](2, 1).Value = "Classe 1"

[Link](2, 2).Value = "Mathématiques, Physique"

[Link](2, 3).Value = "Français, Histoire"


[Link](3, 1).Value = "Classe 2"

[Link](3, 2).Value = "Biologie, Chimie"

[Link](3, 3).Value = "Mathématiques, Français"

' Ajouter d'autres enregistrements ici

End Sub

Étape 3

Sub EnregistrerNombreCours()

Dim ws As Worksheet

Set ws = [Link]("NombreCours")

[Link](1, 1).Value = "Classe"

[Link](1, 2).Value = "Cours"

[Link](1, 3).Value = "Nombre de Fois par Semaine"

' Exemple d'enregistrement

[Link](2, 1).Value = "Classe 1"

[Link](2, 2).Value = "Mathématiques"

[Link](2, 3).Value = 4

[Link](3, 1).Value = "Classe 1"

[Link](3, 2).Value = "Physique"

[Link](3, 3).Value = 3

[Link](4, 1).Value = "Classe 2"

[Link](4, 2).Value = "Chimie"

[Link](4, 3).Value = 3

' Ajouter d'autres enregistrements ici

End Sub

Étape 4
Sub GenererHoraires()

Dim wsProf As Worksheet, wsClasse As Worksheet, wsNombreCours As Worksheet, wsHoraires As


Worksheet

Dim i As Integer, j As Integer, k As Integer

Dim possibleHoraires As Collection

Set wsProf = [Link]("Professeurs")

Set wsClasse = [Link]("Classes")

Set wsNombreCours = [Link]("NombreCours")

Set wsHoraires = [Link]("Horaires")

' Initialiser la feuille des horaires

[Link]

[Link](1, 1).Value = "Classe"

[Link](1, 2).Value = "Jour"

[Link](1, 3).Value = "Heure"

[Link](1, 4).Value = "Cours"

[Link](1, 5).Value = "Professeur"

' Préparer la collection pour les horaires possibles

Set possibleHoraires = New Collection

' Exemple pour remplir la collection avec des horaires possibles (lundi 8-9, 9-10, etc.)

For i = 1 To 5 ' Lundi à Vendredi

For j = 1 To 7 ' 7 cours par jour

[Link] i & ":" & j

Next j

Next i

' Générer les horaires pour chaque classe

For i = 2 To [Link]([Link], 1).End(xlUp).Row


Dim classe As String, coursSpec As String, coursTronc As String

classe = [Link](i, 1).Value

coursSpec = [Link](i, 2).Value

coursTronc = [Link](i, 3).Value

' Répartir les cours spécifiques

For Each cours In Split(coursSpec, ",")

For j = 2 To [Link]([Link], 1).End(xlUp).Row

If [Link](j, 1).Value = classe And [Link](j, 2).Value =


Trim(cours) Then

For k = 1 To [Link](j, 3).Value

' Vérification pour éviter les chevauchements de cours pour un même professeur

Dim horaire As String, jour As Integer, heure As Integer

horaire = [Link](k)

jour = Split(horaire, ":")(0)

heure = Split(horaire, ":")(1)

[Link]([Link], 1).End(xlUp).Offset(1, 0).Value = classe

[Link]([Link], 2).End(xlUp).Offset(0, 1).Value = jour

[Link]([Link], 3).End(xlUp).Offset(0, 2).Value = heure

[Link]([Link], 4).End(xlUp).Offset(0, 3).Value = Trim(cours)

[Link]([Link], 5).End(xlUp).Offset(0, 4).Value =


GetProfesseur(Trim(cours), wsProf)

Next k

End If

Next j

Next cours

' Répartir les cours à tronc commun

For Each cours In Split(coursTronc, ",")

For k = 1 To [Link]

Dim horaireTronc As String


horaireTronc = [Link](k)

jour = Split(horaireTronc, ":")(0)

heure = Split(horaireTronc, ":")(1)

[Link]([Link], 1).End(xlUp).Offset(1, 0).Value = classe

[Link]([Link], 2).End(xlUp).Offset(0, 1).Value = jour

[Link]([Link], 3).End(xlUp).Offset(0, 2).Value = heure

[Link]([Link], 4).End(xlUp).Offset(0, 3).Value = Trim(cours)

[Link]([Link], 5).End(xlUp).Offset(0, 4).Value =


GetProfesseur(Trim(cours), wsProf)

Next k

Next cours

Next i

End Sub

Function GetProfesseur(cours As String, wsProf As Worksheet) As String

Dim i As Integer

For i = 2 To [Link]([Link], 1).End(xlUp).Row

If [Link](i, 2).Value = cours Then

GetProfesseur = [Link](i, 1).Value

Exit Function

End If

Next i

GetProfesseur = "Inconnu"

End Function

Vous aimerez peut-être aussi