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

XL 2019 Affecter des profs en salle de Composition

  • Initiateur de la discussion Initiateur de la discussion lcouaci
  • 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 !

lcouaci

XLDnaute Junior
Bonsoir,
C'est la fin du trimestre, et bientôt les composition. Mais voilà, mon projet excel VBA est d'affecter les profs dans une salle de composition pour la surveillance.
35 profs pour, 24 salle en raison de 2 composition par jours. un comme sur l'image joint. Au fait j'ai pu realisé un vba mais j'arrive le joindre ici; d'ou l'image. Cordialement!!
 
Bonjour le fil

lcouaci
Pourquoi créer un second post?
Alors que dans l'autre, il y a déjà de la lumière, du monde et des propositions...
🙄
Bonsoir,
Désole pour l'insistance mais la proposition des gens que vous appeler lumière du monde n"est pas pour moi. Et difficile à utiliser pour moi
VB:
Sub Macro1()
 Macro1 Macro
Range("A8").Select
    Selection.Copy
    Range("E3").Select
    ActiveSheet.Paste
    Range("A13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("F3").Select
    ActiveSheet.Paste
    Range("A6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("G3").Select
    ActiveSheet.Paste
    Range("A3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("H3").Select
    ActiveSheet.Paste
    Range("A4").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("AA3").Select
    ActiveSheet.Paste
    Range("A5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("O3").Select
    ActiveSheet.Paste
    Range("A6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("P3").Select
    ActiveSheet.Paste
    Range("A7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Q3").Select
    ActiveSheet.Paste
    Range("A9").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("I3").Select
    ActiveSheet.Paste
    Range("A10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("X3").Select
    ActiveSheet.Paste
    Range("A11").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("J3").Select
    ActiveSheet.Paste
    Range("A12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("K3").Select
    ActiveSheet.Paste
    Range("A14").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("V3").Select
    ActiveSheet.Paste
    Range("A15").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("R3").Select
    ActiveSheet.Paste
    Range("A16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("L3").Select
    ActiveSheet.Paste
    Range("A23").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("S3").Select
    ActiveSheet.Paste
    Range("A24").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("T3").Select
    ActiveSheet.Paste
    Range("A25").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("M3").Select
    ActiveSheet.Paste
    Range("A27").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("N3").Select
    ActiveSheet.Paste
    Range("A28").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("U3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=9
    Range("A39").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-12
    Range("W3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=3
    Range("A42").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-12
    Range("Y3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=6
    Range("A44").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-9
    Range("Z3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=3
    Range("A36").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-12
    Range("E4").Select
    ActiveSheet.Paste
    Range("A35").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("F4").Select
    ActiveSheet.Paste
    Range("A32").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("G4").Select
    ActiveSheet.Paste
    Range("A31").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("H4").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=3
    Range("A41").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-12
    Range("M4").Select
    ActiveSheet.Paste
    Range("E3:AA4").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A13").Select
    Selection.Copy
    Range("E3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=12
    Range("A45").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-15
    Range("F3").Select
    ActiveSheet.Paste
    Range("A3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("G3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=3
    Range("A30").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-12
    Range("H3").Select
    ActiveSheet.Paste
    Range("A12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("I3").Select
    ActiveSheet.Paste
    Range("A4").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("J3").Select
    ActiveSheet.Paste
    Range("A8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("K3").Select
    ActiveSheet.Paste
    Range("A6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("L3").Select
    ActiveSheet.Paste
    Range("A5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("M3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=3
    Range("A44").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-18
    Range("N3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=6
    Range("A43").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-15
    Range("O3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=-9
    Range("A31").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("P3").Select
    ActiveSheet.Paste
    Range("A16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Q3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=9
    Range("A39").Select
    ActiveWindow.SmallScroll Down:=-12
    Application.CutCopyMode = False
    Selection.Copy
    Range("R3").Select
    ActiveSheet.Paste
    Range("A25").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("S3").Select
    ActiveSheet.Paste
    Range("A23").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("T3").Select
    ActiveSheet.Paste
    Range("A17").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("U3").Select
    ActiveSheet.Paste
    Range("A14").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("V3").Select
    ActiveSheet.Paste
    Range("A10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("W3").Select
    ActiveSheet.Paste
    Range("A7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("X3").Select
    ActiveSheet.Paste
    Range("A35").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Y3").Select
    ActiveSheet.Paste
    Range("A18").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Z3").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=6
    Range("A44").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-12
    Range("AA3").Select
    ActiveSheet.Paste
    Range("A35").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("E4").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A19").Select
    Selection.Copy
    Range("E4").Select
    ActiveSheet.Paste
    Range("A17").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("F4").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=9
    Range("A33").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-15
    Range("G4").Select
    ActiveSheet.Paste
    Range("A36").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("H4").Select
    ActiveSheet.Paste
    Range("A26").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("I4").Select
    ActiveSheet.Paste
End Sub
 
Re

L'insistance n’empêche pas la courtoisie...😉
qui aurait été de continuer dans le fil initial eu égard au travail déjà fourni dans celui-ci 😉

PS: Pour info, ta macro pourrait drastiquement être réduite en supprimant les Select et autre Activate.
 
Re

Pour préciser ce que j'évoquais dans mon précédent message
Ci-dessous la "trame" des modifications possibles
VB:
Sub Macro1()
'Macro1 macro
Range("A8").Copy Range("E3")
Range("A13").Copy Range("F3")
Range("A6").Copy Range("G3")
Range("A3").Copy Range("H3")
Range("A4").Copy Range("AA3")
'etc...
End Sub
 
Re-

Une suite de la suite de la suite du travail de Victor21.

Il n'y a qu'un superviseur qui a 8 supervisions et l'on peut surement le "swapper" avec l'un des profs à 6 interventions.
Par exemple en salle 11 avec l'examinateur 23 à priori.
Toujours pas compris pourquoi on parle au départ de 35 superviseurs pour arriver à plus de 40 sur la liste...😳

@+

edit : bonjour à staple1600 😎
 

Pièces jointes

Merci pour le coup de main; Cordialement!!
 
Merci à toi pour le coup de main,
Mais comment je peut faire pour que les lignes Range("A").Copy Range("E") soit aléatoire, est ce que la fonction peut être utilisée ici?
 
Re, Bonjour Victor21, Bonjour zebanx

De quelle fonction tu parles?
Et pour ce qui est de l'aléatoire, ce n'était pas le sujet du message#6

Je voulais juste t'informer qu'on pouvait écrire ta macro initiale en beaucoup moins de lignes de code en n'utilisant pas le Select (comme j'ai commencé à le faire dans mon message)
 
Dernière édition:
Bonjour,
En fait, en creusant sur mon projet de vba il me semble que juste un code pour un bouton en vba allant de 1 à 24 (nombre décimale) pourrait faire mon affaire. Ainsi les nombres pourront changer seulement en cliquant sur le bouton. J'espère que j'ai été clair cette fois ci.
 
Re, Icouaci.

Si vous entrez manuellement des nombres entiers*, vous devrez vérifier chaque fois :
- que le prof affecté à une classe n'a pas déjà été affecté à cette même classe un autre jour
- qu'il n'est pas déjà affecté au même moment dans une autre classe.
Le fichier que je vous ai proposé (ainsi que celui de @zebanx le fait AU TO MA TI QUE MENT ! Vous, têtu ? Non...
*
[...] juste un code pour un bouton en vba allant de 1 à 24 (nombre décimale) [...]
J'espère que j'ai été clair cette fois ci.
Un nombre décimal est un nombre réel qui peut s’écrire exactement avec un nombre fini de chiffres après la virgule (lien)
 
OK merci pour tout !
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…