XL 2013 Planning de surveillance examen

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!
 

Fichiers joints

mapomme

XLDnaute Barbatruc
Supporter XLD
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 :)
 

Fichiers joints

Dernière édition:

whatsupdoc

XLDnaute Nouveau
Bonsoir @mapomme,
Je suis impressionné, cela fonctionne parfaitement!
Je découvre les formules matricielles, je vais essayer de comprendre comment ça marche...
Merci beaucoup pour ton aide et ta rapidité!
 

whatsupdoc

XLDnaute Nouveau
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...
 

Fichiers joints

whatsupdoc

XLDnaute Nouveau
Merci beaucoup @JBARBE !
Encore une question de débutant : ma fenêtre VBA editor affiche un caractère par ligne, ce qui me fait tous les caractères sur une seule colonne... Une idée pour corriger ça?
 

JBARBE

XLDnaute Barbatruc
Merci beaucoup @JBARBE !
Encore une question de débutant : ma fenêtre VBA editor affiche un caractère par ligne, ce qui me fait tous les caractères sur une seule colonne... Une idée pour corriger ça?
Envoi nous une image en appuyant sur le bouton de ton ordi impecr !
accessoires Windows
Paint
Coller
Fichier > enregistrer sous > en JPEG
 

whatsupdoc

XLDnaute Nouveau
@JBARBE : merci encore
Quelle modif as tu faite?
Question puisque je ne peux pas lire ton code, les couleurs du tableau de droite semblent différentes de celles du tableau de gauche.
Tu as procédé comment?
 

JBARBE

XLDnaute Barbatruc
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 !
 

JBARBE

XLDnaute Barbatruc
Re,
Au fait tu n'as pas un Mac par hasard ?
sinon:
Fait une mise à jour d'Excel !
Bonne soirée !
 
Dernière édition:

JBARBE

XLDnaute Barbatruc
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 !
 

Fichiers joints

whatsupdoc

XLDnaute Nouveau
Bonjour à tous,
@barbe, tu as raison, j'ai un mac...mais une réinstallation a réglé mon problème d'affichage.
Je ne pensais pas que cela aurait des conséquences sur les macros...
Merci pour cette nouvelle version!
 

zebanx

XLDnaute Accro
Bonjour whatsupdoc, JBARBE, le forum

En repartant de la méthode de JBARBE, sur la forme par deux arrays permettant à chaque jury de trouver une corresponspondance couleur.

@+

VB:
Sub testB()
Dim vCellule As Range
Application.ScreenUpdating = False
jy = Array("A", "B", "C", "D", "E", "F", "G", "H", "5", "6")
Cl = Array(10, 5, 43, 45, 7, 8, 3, 6, 15, 17)

On Error Resume Next
Range("K2:N35").Interior.ColorIndex = xlNone
For Each vCellule In Range("K2:N35")
    For A = LBound(jy) To UBound(jy)
    If vCellule = "Jury salle " & jy(A) Then vCellule.Interior.ColorIndex = Cl(A)
    Next A
Next
Application.ScreenUpdating = True
End Sub
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
@barbe, tu as raison, j'ai un mac...mais une réinstallation a réglé mon problème d'affichage.
Je ne pensais pas que cela aurait des conséquences sur les macros...
Merci pour cette nouvelle version!
Re, Bonjour zebanx,
Pour les problèmes de compatibilité Windows - Mac : ( peut-être une solution ici )



et encore :
En juillet 2011, j'ai commencé à travailler avec Office 2011 sur mon premier ordinateur Mac. Mon idée est de parcourir toutes mes pages de conseils sur Excel pour Windows et de voir si je peux également utiliser le code VBA sous Mac Excel. Il est très difficile de créer un code qui fonctionnera dans toutes les versions de Mac Excel. Sur les nouvelles pages, je ne vais plus ajouter d'exemples pour Excel 2011 et il semble que la version commerciale d'Excel 2016 posera également un problème, car MS ne résoudra pas les problèmes et n'ajoutera pas de nouveaux éléments dans la version O365 et la version commerciale au même moment. Peut-être que dans le futur, j'arrêterai aussi de tester dans la version Retail.

Bonne journée !
 
Dernière édition:

whatsupdoc

XLDnaute Nouveau
Merci à tous pour ces propositions et pour les cours VBA accélérés!
Merci aussi pour les infos de compatibilité PC/Mac... J'ai pas de chance, Mac à la maison et Pc au travail...
Bonne soirée
 

JBARBE

XLDnaute Barbatruc
Re,
Comme il est précisé dans mon post #18, l'installation de windows sur ton mac peut se faire !
Bien sûr il faut avoir acheté Windows et posséder Excel pour Windows !
Reste à savoir si ça vaut le coup financièrement suivant son utilisation !
Bonne soirée !
 
Dernière édition:

Discussions similaires


Haut Bas