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

XL 2016 Répartition des profs sur salles pour surveillance

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 !

Seddiki_adz

XLDnaute Impliqué
Bonjour
j'ai un fichier pour la répartition de 75 profs sur 25 salles pour surveillance
qui peut m'aider de modifier le code de module pour avoir pour chaque classe trois surveillants au lieu de deux surveillants et un remplaçant
Merci d'avance
 

Pièces jointes

Bonjour, je suis nouveau sur ce site.
J'ai trouver ce fichier assez intéressant.
Quelqu'un peut m'aider à le modifier de manière à ce que si on place un surveillant sur le tableau au préalable la case ne soit pas ecrasée.
 
Bonjour sabri186, Bernard,
Quelqu'un peut m'aider à le modifier de manière à ce que si on place un surveillant sur le tableau au préalable la case ne soit pas ecrasée.
Sur le fichier du post #59 j'ai modifié la macro du bouton :
VB:
Option Compare Text 'la casse est ignorée

Private Sub CBnTirage_Click()
   Dim cible, adrcible, ntir, TNoms(), LOt As ListObject, TRésu(), M As Long, L As Long, J As Long, C As Long
   cible = [D30]: adrcible = [D31]
   On Error Resume Next
   TNoms = [TbProfs[Professeur]].Value
   If Err Then MsgBox "Table des professeurs indisponible", vbCritical, "Tirage": Exit Sub
   On Error GoTo 0
   If UBound(TNoms, 1) Mod 3 > 0 Then MsgBox "Le nombre de professeurs doit être un multiple de 3", vbCritical, "Tirage": End
For ntir = 1 To 100
   Set LOt = Me.ListObjects(1): M = (LOt.ListColumns.Count - 1) \ 3
   If TiragePSimOK(NbJrs:=UBound(TNoms, 1), MMax:=M, RClubs:=[TbProfs[Etablissement]]) Then
      ReDim TRésu(1 To UBound(Tirage, 2), 1 To UBound(Tirage, 1) * 3)
      For L = 1 To UBound(Tirage, 2)
         C = 0
         For M = 1 To UBound(Tirage, 1): For J = 1 To 3
            C = C + 1
            TRésu(L, C) = TNoms(Tirage(M, L, J), 1)
      Next J, M, L
      With Me.ListObjects(1).DataBodyRange
         L = .Rows.Count - UBound(TRésu, 1)
         Select Case Sgn(L)
            Case 1: .Rows(2).Resize(L).Delete xlShiftUp
            Case -1: .Rows(2).Resize(-L).Insert xlShiftDown
         End Select
         .Columns(2).Resize(, UBound(TRésu, 2)).Value = TRésu: End With
   End If
   If Range(adrcible) = cible Then Range(adrcible) = cible: MsgBox "Cible trouvée en " & ntir & " tirages": Exit Sub
Next ntir
MsgBox "Cible NON trouvée"
End Sub
Le texte cible est en D30, l'adresse de la cellule cible en D31.

J'ai fait quelques essais : la cible a toujours été trouvée mais ça prend un certain temps 😀

A+
 

Pièces jointes

Dernière édition:
un autre essai.
on a un tableau "préalable" dans la feuille "prealable", avec 100 dès 524 cellules comme "pré-alable". Il y a un menu déroulant pour les professeurs et si un professeur devient rouge (MFC), il n'est pas disponible et s'il devient orange, il esten doublon dans cette séance.
poussez le bouton vert "BSALV" ou lancer la macro "M_BSALV"
 

Pièces jointes

Dernière édition:
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…