XL 2013 Planning de surveillance examen

  • Initiateur de la discussion Initiateur de la discussion whatsupdoc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

whatsupdoc

XLDnaute Nouveau
Bonjour,
J'ai un tableau avec des professeurs, un horaire et une salle de surveillance.
J'ai besoin de transformer ce tableau avec des lignes des salles, des horaires et savoir quels professeurs seront présents dans ces salles.
J'ai également des professeurs notés "soutien" dans le premier tableau. Cela signifie qu'ils sont prévus au cas où un des professeurs affecté en salle serait absent.
J'aimerais également avoir un récap de ces professeurs en soutient en face de l'horaire.
Je joins un tableau d'exemple.
Merci beaucoup!
 

Pièces jointes

Bonsoir @whatsupdoc,

Via deux formules matricielles à valider par la combinaison des trois touches Ctrl+Maj+Entrée :

la première en K2 à tirer/copier vers la droite et vers le bas
VB:
=SIERREUR(INDEX($B:$B;PETITE.VALEUR(SI(C$2:C$35=$J2;LIGNE(C$2:C$35));1+MOD(LIGNE();2)));"")

et la seconde en K23 à tirer/copier vers la droite et vers le bas

edit: Salut @zebanx 🙂
 

Pièces jointes

Dernière édition:
Bonjour @mapomme,
J'ai essayé de comprendre la formule et en tâtonnant, j'ai réussi à faire l'opération inverse : passer de la répartition des profs dans les jurys à la répartition des jurys par profs..
Ma question : est-ce possible d'inclure dans la formule la copie de la couleur des cellules des jurys? Par exemple le vert foncé pour jury A..
Merci...
 

Pièces jointes

Voilà mon VBA editor...

1032221
 
Re,
on dirait que ma macro ne peux s'afficher entièrement dans ton module !
Voici mon code modifié :
une boucle >>For j = 1 To 35 pour les lignes :
If Cells(i + j, k) = "Jury salle A" Then Cells(i + j, k).Interior.ColorIndex = 10>>>>ici >Jury salle A
en remplacement de :
If Cells(i + 1, k) = "Jury salle A" Then Cells(i + 1, k).Interior.ColorIndex = 10
Ce qui évite de ne compter qu'une ligne en dessous!
pour >> les couleurs du tableau de droite semblent différentes de celles du tableau de gauche >>il ne devrait pas avoir de différence
tu dois avoir un problème avec Excel !
VB:
Option Explicit

Sub test()
Dim i As Long, k As Long, j As Long
Application.ScreenUpdating = False
Range("K2:N35").Interior.ColorIndex = xlNone
For i = 2 To 35
For k = 11 To 14
If Cells(i, k) = "Jury salle A" Then Cells(i, k).Interior.ColorIndex = 10
For j = 1 To 35
If Cells(i + j, k) = "Jury salle A" Then Cells(i + j, k).Interior.ColorIndex = 10
Next j
If Cells(i, k) = "Jury salle B" Then Cells(i, k).Interior.ColorIndex = 5
For j = 1 To 35
If Cells(i + j, k) = "Jury salle B" Then Cells(i + j, k).Interior.ColorIndex = 5
Next j
If Cells(i, k) = "Jury salle C" Then Cells(i, k).Interior.ColorIndex = 43
For j = 1 To 35
If Cells(i + j, k) = "Jury salle C" Then Cells(i + j, k).Interior.ColorIndex = 43
Next j
If Cells(i, k) = "Jury salle D" Then Cells(i, k).Interior.ColorIndex = 45
For j = 1 To 35
If Cells(i + j, k) = "Jury salle D" Then Cells(i + j, k).Interior.ColorIndex = 45
Next j
If Cells(i, k) = "Jury salle E" Then Cells(i, k).Interior.ColorIndex = 7
For j = 1 To 35
If Cells(i + j, k) = "Jury salle E" Then Cells(i + j, k).Interior.ColorIndex = 7
Next j
If Cells(i, k) = "Jury salle F" Then Cells(i, k).Interior.ColorIndex = 8
For j = 1 To 35
If Cells(i + j, k) = "Jury salle F" Then Cells(i + j, k).Interior.ColorIndex = 8
Next j
If Cells(i, k) = "Jury salle G" Then Cells(i, k).Interior.ColorIndex = 3
For j = 1 To 35
If Cells(i + j, k) = "Jury salle G" Then Cells(i + j, k).Interior.ColorIndex = 3
Next j
If Cells(i, k) = "Jury salle H" Then Cells(i, k).Interior.ColorIndex = 6
For j = 1 To 35
If Cells(i + j, k) = "Jury salle H" Then Cells(i + j, k).Interior.ColorIndex = 6
Next j
If Cells(i, k) = "Jury salle 5" Then Cells(i, k).Interior.ColorIndex = 15
For j = 1 To 35
If Cells(i + j, k) = "Jury salle 5" Then Cells(i + j, k).Interior.ColorIndex = 15
Next j
If Cells(i, k) = "Jury salle 6" Then Cells(i, k).Interior.ColorIndex = 17
For j = 1 To 35
If Cells(i + j, k) = "Jury salle 6" Then Cells(i + j, k).Interior.ColorIndex = 17
Next j
Next k
Next i
Application.ScreenUpdating = True
End Sub

Bonne soirée !
 
Bonjour à tous, à toutes,
J'ai l'impression que notre ami whatsupdoc reste muet car les erreurs qu'il a constaté sont peut être dû au fait qu'il possède un Mac !
Dommage qu'il ne l'ai pas signalé plus tôt !
Néanmoins je tenais à modifier ma macro qui ne corresponds pas à la demande malgré son efficacité ( mais d'une durée trop longue )!
VB:
Option Explicit

Sub testA()
Dim vCellule As Range
Application.ScreenUpdating = False
Range("K2:N35").Interior.ColorIndex = xlNone
For Each vCellule In Range("K2:N35")
If vCellule = "Jury salle A" Then vCellule.Interior.ColorIndex = 10
If vCellule = "Jury salle B" Then vCellule.Interior.ColorIndex = 5
If vCellule = "Jury salle C" Then vCellule.Interior.ColorIndex = 43
If vCellule = "Jury salle D" Then vCellule.Interior.ColorIndex = 45
If vCellule = "Jury salle E" Then vCellule.Interior.ColorIndex = 7
If vCellule = "Jury salle F" Then vCellule.Interior.ColorIndex = 8
If vCellule = "Jury salle G" Then vCellule.Interior.ColorIndex = 3
If vCellule = "Jury salle H" Then vCellule.Interior.ColorIndex = 6
If vCellule = "Jury salle 5" Then vCellule.Interior.ColorIndex = 15
If vCellule = "Jury salle 6" Then vCellule.Interior.ColorIndex = 17
Next
Application.ScreenUpdating = True
End Sub

Bonne journée !
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
2 K
Retour