Automatisez la planification du transport et de la logistique, Excel VBA

Automatisez la planification du transport et de la logistique, Excel VBA

Automatiser la planification du transport et de la logistique dans Excel à l’aide de VBA peut considérablement améliorer l’efficacité des processus et réduire les erreurs humaines. Voici un exemple détaillé de code VBA qui pourrait être utilisé pour automatiser une partie de la planification du transport et de la logistique, tel que l’assignation des livraisons aux chauffeurs ou la planification des itinéraires. Le scénario de cet exemple inclut les étapes suivantes : 

1. Entrée des données : Un tableau dans Excel contient les informations relatives aux livraisons, y compris l’adresse de départ, la destination, la date de livraison, le poids de la cargaison, etc. 

2. Automatisation de l’assignation : Le code VBA va analyser les données et assigner chaque livraison à un chauffeur ou à un véhicule, selon les critères (par exemple, capacité du véhicule, proximité, etc.). 

3. Planification de l’itinéraire : Le code peut également planifier l’itinéraire en fonction de la distance ou des priorités. 

Structure des données dans Excel

Imaginons que vous avez un tableau Excel avec les colonnes suivantes : 

  • A : ID de livraison 
  • B : Adresse de départ 
  • C : Adresse de destination 
  • D : Poids de la cargaison 
  • E : Date de livraison 
  • F : Chauffeur assigné 
  • G : Véhicule assigné 
  • H : Statut de la livraison (ex : « Planifié », « En cours », « Livré ») 

Exemple de Code VBA

Sub PlanificationTransportLogistique() 
    ' Déclaration des variables 
    Dim ws As Worksheet 
    Dim ligne As Long 
    Dim adresseDepart As String 
    Dim adresseDestination As String 
    Dim poids As Double 
    Dim dateLivraison As Date 
    Dim chauffeurDisponible As String 
    Dim vehiculeDisponible As String 
    Dim distance As Double 
    Dim poidsMax As Double 
    Dim capaciteVehicule As Double 
    ' Set référence au tableau de planification (feuille Excel) 
    Set ws = ThisWorkbook.Sheets("Livraisons") ' Remplacer "Livraisons" par le nom de votre feuille 
    ' Initialisation des limites de poids (par exemple, poids max d'un véhicule) 
    capaciteVehicule = 1000 ' Exemple de capacité en kg 
    ' Boucle pour parcourir toutes les lignes du tableau (à partir de la ligne 2) 
    ligne = 2 
    Do While ws.Cells(ligne, 1).Value <> "" 
        ' Récupération des données de la livraison 
        adresseDepart = ws.Cells(ligne, 2).Value 
        adresseDestination = ws.Cells(ligne, 3).Value 
        poids = ws.Cells(ligne, 4).Value 
        dateLivraison = ws.Cells(ligne, 5).Value 
        ' Vérifier la capacité du véhicule avant d'assigner 
        If poids <= capaciteVehicule Then   
            ' Si le poids est inférieur à la capacité, chercher un chauffeur et un véhicule disponible 
            chauffeurDisponible = ChercherChauffeurDisponible(dateLivraison) 
            vehiculeDisponible = ChercherVehiculeDisponible(dateLivraison) 
            ' Si un chauffeur et un véhicule sont disponibles, assigner la livraison 
            If chauffeurDisponible <> "" And vehiculeDisponible <> "" Then 
                ws.Cells(ligne, 6).Value = chauffeurDisponible ' Assignation du chauffeur 
                ws.Cells(ligne, 7).Value = vehiculeDisponible ' Assignation du véhicule 
                ws.Cells(ligne, 8).Value = "Planifié" ' Mettre le statut à "Planifié" 
            Else 
                ws.Cells(ligne, 8).Value = "Pas de ressources disponibles" 
            End If 
        Else 
            ' Si le poids est trop élevé pour un seul véhicule, afficher un message 
            ws.Cells(ligne, 8).Value = "Poids trop élevé" 
        End If 
        ' Passer à la ligne suivante 
        ligne = ligne + 1 
    Loop 
End Sub 
Function ChercherChauffeurDisponible(dateLivraison As Date) As String 
    ' Exemple de fonction pour chercher un chauffeur disponible à la date donnée 
    Dim chauffeur As String 
    chauffeur = "" 
    ' Pour simplifier, l'exemple retourne un nom fictif si un chauffeur est disponible 
    ' Ajouter ici la logique de recherche dans un tableau de chauffeurs disponibles 
    If dateLivraison >= Date Then 
        chauffeur = "Chauffeur 1" ' Remplacer par la recherche dynamique 
    End If 
    ChercherChauffeurDisponible = chauffeur 
End Function 
Function ChercherVehiculeDisponible(dateLivraison As Date) As String 
    ' Exemple de fonction pour chercher un véhicule disponible à la date donnée 
    Dim vehicule As String 
    vehicule = "" 
    ' Pour simplifier, l'exemple retourne un véhicule fictif si un véhicule est disponible 
    ' Ajouter ici la logique de recherche dans un tableau de véhicules disponibles 
    If dateLivraison >= Date Then 
        vehicule = "Véhicule A" ' Remplacer par la recherche dynamique 
    End If 
    ChercherVehiculeDisponible = vehicule 
End Function

Explication du code

       1.Variables et structure des données

  • Le code commence par déclarer des variables pour la feuille de travail (ws), les informations de chaque ligne de livraison (adresse de départ, destination, poids, etc.), et les fonctions auxiliaires qui vont déterminer les ressources disponibles. 

      2. Boucle sur les lignes de données

  • Le code parcourt chaque ligne du tableau de planification, en commençant à la ligne 2 (l’assumption est que la ligne 1 contient des en-têtes). 
  • Pour chaque livraison, il vérifie si le poids de la cargaison est inférieur à la capacité maximale d’un véhicule (capaciteVehicule). Si c’est le cas, il continue avec la recherche d’un chauffeur et d’un véhicule disponibles pour la date spécifiée. 

        3. Fonctions auxiliaires

  • Les fonctions ChercherChauffeurDisponible et ChercherVehiculeDisponible sont des exemples simplifiés pour retourner un chauffeur et un véhicule disponibles. Dans une application réelle, ces fonctions pourraient effectuer des recherches dans d’autres feuilles ou tableaux qui contiennent les horaires des chauffeurs et des véhicules. 

       4. Assignation des ressources

  • Si un chauffeur et un véhicule sont disponibles pour la date de livraison, le code assigne ces ressources à la livraison en mettant à jour les colonnes appropriées dans le tableau Excel (chauffeur et véhicule assignés). 

       5. Statut de la livraison

  • Le statut de la livraison est mis à jour, soit à « Planifié » si la livraison a été correctement assignée, soit à « Pas de ressources disponibles » ou « Poids trop élevé » si la planification échoue. 

Personnalisation et Extension

  • Recherche dynamique des chauffeurs et véhicules : Vous pouvez remplacer les fonctions ChercherChauffeurDisponible et ChercherVehiculeDisponible par des recherches dynamiques dans des tables de disponibilité qui contiennent les horaires et disponibilités réels des chauffeurs et des véhicules. 
  • Calcul des distances : Vous pouvez intégrer des API comme Google Maps pour calculer la distance entre les adresses de départ et de destination et optimiser ainsi les itinéraires. 
  • Gestion des priorités : Vous pouvez ajouter une logique pour attribuer des priorités aux livraisons urgentes et assigner les ressources en conséquence. 

Conclusion 

Ce code VBA constitue une base pour automatiser la planification des livraisons et des ressources logistiques dans Excel. Vous pouvez l’adapter selon vos besoins spécifiques, comme l’intégration de fonctionnalités supplémentaires pour l’optimisation des itinéraires ou la gestion d’un grand nombre de ressources. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x