XL 2019 Affecter des profs en salle de Composition

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!!
1033360
 

lcouaci

XLDnaute Junior
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...
:rolleyes:
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
 

Staple1600

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

Staple1600

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

zebanx

XLDnaute Accro
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...:oops:

@+

edit : bonjour à staple1600 :cool:
 

Pièces jointes

  • Examinateurs 2.xlsm
    25.9 KB · Affichages: 11

lcouaci

XLDnaute Junior
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...:oops:

@+

edit : bonjour à staple1600 :cool:
Merci pour le coup de main; Cordialement!!
 

lcouaci

XLDnaute Junior
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
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?
 

Staple1600

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

lcouaci

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

Victor21

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

lcouaci

XLDnaute Junior
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...
*

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 !
 

Discussions similaires

Statistiques des forums

Discussions
312 079
Messages
2 085 133
Membres
102 790
dernier inscrit
nabilziad