XL 2019 Comparatif heure vba

IFA

XLDnaute Nouveau
Bonjour à toute la communauté,

J'ai un petit fichier avec 2 tableaux, je cherche à comparer l'horaire de sortie d'un étudiant de l'atelier 1 avec le prochain créneau disponible dans l'atelier 2

Je ne comprend pas pourquoi mon étudiant sort à 9h30, qu'il y a un créneau de disponible à 9h30, même 10h mais que pourtant il le place à 10h30...

Quelqu'un pourrait-il me mettre sur la voie ?

Merci beaucoup
 

Pièces jointes

  • Essaibis rotation.xlsm
    20.9 KB · Affichages: 8

Pounet95

XLDnaute Occasionnel
Bonjour,
Avec ceci si ça vous dit ?
VB:
Sub test()
    Dim rng1        As Range
    Dim rng2        As Range
    Dim cel1        As Range
    Dim cel2        As Range
    Dim HSort       As Date
    Dim HEntre      As Date
    Dim Placé       As Boolean
    
    Set rng1 = Range("D3:D25")      'sortie
    Set rng2 = Range("G3:G25")      'entrée
    
    'groupe 2 Atelier 1 vers groupe  2 Atelier 2
    For Each cel1 In rng1
        Placé = False
        HSort = cel1
        If cel1.Offset(, -3) <> 0 Then
            For Each cel2 In rng2
                If cel2.Offset(, 2) = "" Then
                    Select Case cel2
                    Case Is = cel1
                        cel2.Offset(, 2) = cel1.Offset(, -1)
                        Placé = True
                        Exit For
                    Case Is > cel1
                        cel2.Offset(, 2) = cel1.Offset(, -1)
                        Placé = True
                        Exit For
                    End Select
                End If
                If Placé = True Then Exit For
            Next cel2
        End If
    Next cel1
End Sub
 

IFA

XLDnaute Nouveau
Génial, merci beaucoup !!!
Il me reste à décortiquer tout ça...
En fait j'essaie d'avancer tout seul sur un projet que j'avais partagé ici, mais sans réponse...

Je vous le partage, si jamais vous aviez d'autres idées me permettant d'avancer...Sans abuser, bien sur...

Milles mercis, en tout cas pour votre contribution...
Bon dimanche et bon confinement !
Prenez soins de vous et de vos proches.

Le sujet complet:

"Nous assurons des ateliers pour nos étudiants plusieurs fois dans l'année et à chaque fois c'est une galère de réaliser ça à la main, tellement il y a de contraintes... Je me suis donc dit qu'il y avait peut-être moyen d'optimiser ça en code VBA ?

Voilà l'idée (tableau et exemple joint):

Contraintes: Rotation sur 3 ateliers (2 pour lesquels les étudiants ont travaillés en groupes (G1/G2 à respecter) et un troisième ou ils passent seuls quel que soit leur groupe)

Atelier 1 : étudiants 2 par 2 en respectant les groupes - les 2 étudiants sont libérés 45 min plus tard: 2 autres arrivent.

Atelier 2: 3 étudiants à 8h00, puis 1 étudiants arrive à 9h qui libère le premier des 3 étudiants, puis un nouvel étudiant arrive toutes les 30 min en libérant le plus ancien sur place... Respect des groupes. Après la pause du midi les contraintes sont les mêmes (3 puis 1...)

Atelier 3: Aucune contrainte de groupe, étudiants 1 par 1, durée 15 min

Mais contrainte supplémentaire: l'atelier 2 se situe sur un autre campus, il nécessite 15 min de trajet (dans un sens comme dans un autre), les ateliers 1 et 3 se situent au même endroit..

Les étudiants ne sont pas obligés de respecter l'ordre (1,2,3) tout est possible: (1,3,2/2,1,3/2,3,1/1,2,3/,3,2,1/3,1,2)
L'utilité de cette rotation étant d'avoir un étudiant qui passe le moins de temps possible sur le campus à partir du moment où il à commencé un atelier...

Le mieux serait un tout automatique, mais il est aussi possible de partir du tableau 2 rempli pour extrapoler les 2 autres...

J'imagine que tout ça parait chinois, mais c'est un peu plus clair sur le tableau et avec l'exemple...

Si jamais quelqu'un avait une idée de comment démarrer, ou faire ça, ou même un bout de code dans ce sens, je suis preneur..."


Manu
 

Pièces jointes

  • Essai rotation.xlsx
    20.7 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
312 190
Messages
2 086 040
Membres
103 105
dernier inscrit
fofana