Automatiser le calcul des distances dans Google Sheets avec Apps Script

Dans le monde dynamique d’aujourd’hui, l’efficacité et l’automatisation sont clés pour économiser du temps et augmenter la productivité. Que vous soyez un gestionnaire de flotte, un organisateur d’événements, ou simplement quelqu’un qui planifie un voyage, calculer des distances entre des points peut s’avérer essentiel. Google Sheets, combiné à Google Apps Script et à l’API Google Maps, offre une solution puissante pour automatiser ce processus.

Dans cet article, nous explorerons comment créer un script pour calculer automatiquement les distances en voiture entre des adresses saisies dans une feuille de calcul Google Sheets.

Pourquoi automatiser le calcul des distances ?

L’automatisation du calcul des distances peut vous faire économiser un temps considérable, surtout si vous travaillez régulièrement avec des listes d’adresses. Plutôt que de saisir manuellement chaque adresse dans Google Maps, notre solution propose un calcul instantané directement dans votre feuille de calcul. Cela peut être particulièrement utile pour :

  1. Les entreprises de livraison estimant les coûts de transport
  2. Les planificateurs d’événements calculant les distances pour les participants
  3. Les voyageurs organisant leurs itinéraires

Comment configurer le script dans Google Sheets ?

Étape 1 : Préparer votre feuille de calcul Google Sheets

Commencez par créer une nouvelle feuille de calcul Google Sheets. Dans la première ligne, nommez trois colonnes : « Adresse de départ », « Adresse d’arrivée », « Distance en km » et « Durée ».

Étape 2 : Ajouter le code Google Apps Script

  • Ouvrez l’éditeur de script depuis votre feuille de calcul en cliquant sur Extensions > Apps Script.
  • Copiez et collez le script (fourni plus bas) dans l’éditeur de script.
function onEdit(e) {
  const { range } = e;
  const sheet = range.getSheet();

  // Vérifier si la modification a eu lieu dans la colonne A ou B et si les deux colonnes ont des valeurs
  if ((range.getColumn() === 1 || range.getColumn() === 2) &&
      sheet.getRange(range.getRow(), 1).getValue() &&
      sheet.getRange(range.getRow(), 2).getValue()) {
    calculerDistanceEtTempsPourLigne(range.getRow());
  }
}

const calculerDistanceEtTempsPourLigne = (ligne) => {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const adresseDepart = feuille.getRange(ligne, 1).getValue();
  const adresseArrivee = feuille.getRange(ligne, 2).getValue();

  const directionsService = Maps.newDirectionFinder().setMode(Maps.DirectionFinder.Mode.DRIVING);
  const directions = directionsService.setOrigin(adresseDepart).setDestination(adresseArrivee).getDirections();

  if (directions && directions.routes.length > 0) {
    const leg = directions.routes[0].legs[0];

    // Calcul de la distance
    const distance = leg.distance.text.split(' ')[0].replace('.', ',');
    feuille.getRange(ligne, 3).setValue(distance);

    // Calcul du temps de trajet
    const duree = leg.duration.text;
    feuille.getRange(ligne, 4).setValue(duree);
    
  } else {
    feuille.getRange(ligne, 3).setValue("Distance non trouvée");
    feuille.getRange(ligne, 4).setValue("Temps non trouvé");
  }
};

Étape 3 : Le script

Le script utilise Google Maps Directions API pour calculer la distance de conduite entre les adresses de départ et d’arrivée. Il inclut une fonction `onEdit` qui déclenche le calcul automatiquement dès qu’une adresse est saisie ou modifiée.

Conclusion

L’automatisation du calcul des distances dans Google Sheets via Google Apps Script est un excellent exemple de la manière dont vous pouvez utiliser les outils Google pour améliorer votre efficacité. En suivant les étapes décrites dans cet article, vous serez capable de mettre en place un système qui non seulement économise du temps mais aussi augmente la précision de vos calculs de distances.