Guillaume831
Nouveau membre
Bonjour à tous,
Je vous présente mon problème.
Je suis sur la création d'un emploi du temps complexe. Le fichier Excel se compose en deux parties : la première composée d'onglets administratifs et de réglages, dont un qui s'appelle "Cours". Cet onglet présente un tableau, dont chaque ligne représente un cours avec tous les facteurs qui lui sont liés (jours, heures de fin et de début et nom du professeur).
Les onglets postérieurs représentent les professeurs, chaque prof ayant son propre onglet.
Mon problème réside en la création d'une macro "Qui est disponible?". En appuyant sur le bouton de l'onglet "Cours", après avoir défini le jour et la plage horaire, la macro me trouve les professeurs disponibles selon les critères précédemment définis.
Voici la partie de mon code qui je pense est la source du problème. Ca ne marche pas tout le temps, si vous pouviez m'aider... Merci!
Si mes explications ne vous paraissent pas nettes, informez m'en!
Merci encore!
Je vous présente mon problème.
Je suis sur la création d'un emploi du temps complexe. Le fichier Excel se compose en deux parties : la première composée d'onglets administratifs et de réglages, dont un qui s'appelle "Cours". Cet onglet présente un tableau, dont chaque ligne représente un cours avec tous les facteurs qui lui sont liés (jours, heures de fin et de début et nom du professeur).
Les onglets postérieurs représentent les professeurs, chaque prof ayant son propre onglet.
Mon problème réside en la création d'une macro "Qui est disponible?". En appuyant sur le bouton de l'onglet "Cours", après avoir défini le jour et la plage horaire, la macro me trouve les professeurs disponibles selon les critères précédemment définis.
Voici la partie de mon code qui je pense est la source du problème. Ca ne marche pas tout le temps, si vous pouviez m'aider... Merci!
Code:
Sub Dispo()
Dim Lg%, i%, F%, j%
Dim Jh%, Cpt%
'donne les dispos des profs
Application.ScreenUpdating = False
Lg = Range("S65536").End(xlUp).Row
Range("S6").ClearContents 'S6 est la cellule où s'affiche le nom des profs dispos
For F = 6 To Worksheets.Count 'onglets des profs
With Worksheets(F)
'T3 est la cellule qui indique l'heure de début de la disponibilité
'U3 est la cellule qui indique l'heure de fin de la disponibilité
j = Application.Match(Cells(3, "S"), .Rows(3), 0) 'S3 est la cellule qui indique le jour qui m'intéresse
For Jh = 4 To 31 'lignes dans les onglets profs, qui représentent les horaires ,soit de 7h à 20h30
If .Cells(Jh, "B") >= Cells(3, "T") And _
.Cells(Jh, "B") <= Cells(3, "U") And _
.Cells(Jh, j) = "" And _
.Cells(Jh, j).Interior.ColorIndex = xlNone Then 'les deux dernières conditions éliminent du résultat attendu les profs qui sont occupés sur la plage horaire choisie - soit les cellules correspondantes contiennent du texte ou sont coloriées.
Cpt = 0
Exit For
Else
Cpt = Cpt + 1
End If
Next Jh
If Cpt = 0 Then Cells(6, "S") = Cells(6, "S") & .Range("E1") & ";"
End With
Next F
Si mes explications ne vous paraissent pas nettes, informez m'en!
Merci encore!