Microsoft 365 Macro qui enchaine deshoraires Aller-Retour en fonction de critères

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 !

jlbcall

XLDnaute Occasionnel
Bonjour à tous,


Je cherche à créer une macro Excel qui doit remplir une colonne SV dans deux tableaux : ALLER et RETOUR. Chaque tableau contient des horaires classés pour des trajets entre deux points, avec des formules calculant les temps intermédiaires jusqu’à la fin du voyage.

Objectif de la macro :

  • Identifier tous les enchaînements possibles entre les voyages ALLER et RETOUR.
  • Un enchaînement est possible si le départ du voyage suivant est supérieur ou égal à l’heure de fin du voyage précédent.
  • La macro doit remplir la colonne SV avec des codes comme SV-1, SV-2, etc., pour chaque série d’enchaînements.
  • Les codes doivent commencer avec le voyage ayant l’heure de départ la plus tôt. (Retour ou aller donc)

Problème rencontré :
  • La macro parcourt les tableaux et essaie de créer tous les enchaînements, mais il semble qu’elle n’arrive pas à détecter correctement l’heure de fin des voyages, ce qui empêche la création des enchaînements et le remplissage correct de la colonne SV.
Précisions :
  • Les colonnes pour les horaires sont : F pour l’heure de départ et en dernière colonne des tableaux ALLER / RETOUR ici AJ mais en fonction du nombre d'arrêts de la ligen cela change pour l’heure de fin (dans les deux tableaux).
  • L’enchaînement se fait typiquement ALLER → RETOUR → ALLER → RETOUR, mais il ne doit jamais y avoir de chevauchement impossible (départ < fin du voyage précédent).
  • Les horaires sont en format Excel (hh:mm).

Je cherche donc de l’aide pour :

  1. Vérifier que la macro peut lire correctement les heures de fin.
  2. Créer les enchaînements de manière automatique et remplir correctement la colonne SV.
  3. La amcro trouver un SV pour chaque voyages soit 152 ici alors que je devrais ps dépassé SV-13 SV-14

Merci d’avance pour vos suggestions !
 

Pièces jointes

Bonjour
Pas bien saisie le résultat attendu
Peux-tu donner plus d'explications avec un exemple ou deux concret du resultat attendu
On dispose de deux tableaux :
  • un tableau Sens Aller
  • un tableau Sens Retour
Étape 1 – Détection du premier voyage
  • La macro repère, dans le tableau Sens Retour, l’heure de départ du premier voyage en colonne F (exemple : 05h50).
  • Elle va chercher l’heure d’arrivée de ce même voyage dans la dernière colonne de la ligne, ici la colonne AK (exemple : 06h45).
Étape 2 – Recherche d’un enchaînement dans l’autre sens
  • À partir de cette heure d’arrivée (06h45), la macro va dans le tableau Sens Aller.
  • Elle cherche un voyage dont l’heure de départ est compatible avec l’arrivée précédente :
    • 06h40 → impossible
    • 06h50 → possible
  • Les deux voyages (Retour 05h50 → 06h45 et Aller 06h50 → …) sont alors considérés comme enchaînables.
Étape 3 – Affectation d’un code de service
  • La macro affecte le code SV-01 aux deux voyages.
  • Elle continue ensuite à chercher tous les enchaînements possibles, en respectant la règle :
    • on n’enchaîne jamais deux voyages du même sens.
Étape 4 – Création des services suivants
  • Une fois arrivée à la fin des deux tableaux, la macro :
    • recherche le voyage de départ le plus tôt qui n’a pas encore de code SV,
    • crée alors SV-02,
    • et recommence la recherche d’enchaînements entre les deux sens.
  • Le processus se répète :
    • SV-03
    • SV-04
    • etc., jusqu’à ce que tous les voyages soient affectés
Objectif final
  • Chaque code SV-xx représente un enchaînement Aller / Retour.
  • En filtrant par exemple sur SV-03, on visualise immédiatement tous les voyages Aller et Retour qui composent ce service.
 
1770305903311.png
 
Bonsoir j'arrive presque on résultat masi quand lmes colonne SV se remplisse je tombre à SV-13 alors qu''on devrait tombé à Sv-12 maxi car la macro ne prendres pa systématquement la première heure debut qui peut se trouver dans le second tableaux RETOUR le job doit systémantiquement lorsqu'il créer un nouveau code SV repérer l'heure le plus petite pour faire je travail. Attention a bien vider les colonne SV avant de relancer la macro je dois intégrer un clean de ces deux colonnes. MErci bonne soirée
 

Pièces jointes

- 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

Retour