Automatiser la gestion des crédits et débits dans Google Sheets avec Apps Script


Dans cet article, vous apprendrez à automatiser la gestion des colonnes Crédit et Débit dans Google Sheets à l’aide de Google Apps Script. Cela permet non seulement de mettre à jour la balance en fonction des cases à cocher, mais aussi de prévenir les erreurs de saisie dans la colonne Montant. Ainsi, ce script devient un outil efficace pour gérer des opérations financières dans un tableau de calcul.

Pourquoi automatiser la gestion des crédits et débits ?

Gérer manuellement des crédits et des débits dans un tableau devient rapidement fastidieux. En effet, les erreurs sont fréquentes, et la mise à jour des soldes peut être oubliée. En automatisant ce processus, vous pourrez :

  • Mettre à jour automatiquement la balance dès qu’une case est cochée, sans intervention manuelle Éviter les erreurs de saisie : lorsque le montant est invalide, le script réinitialise immédiatement la balance et décoche les cases concernées.
  • Garantir un formatage correct des montants, en utilisant une virgule pour les décimales, conformément aux conventions françaises.

Fonctionnement du script

Ce tableau comporte quatre colonnes principales :

  • Montant (colonne A) : Vous entrez ici la valeur du montant.
  • Balance (colonne B) : Le solde se met à jour automatiquement en fonction des cases cochées.
  • Crédit (colonne C) : Vous cochez cette case pour indiquer un crédit, soit une entrée d’argent.
  • Débit (colonne D) : Vous cochez cette case pour indiquer un débit, soit une sortie d’argent.

Chaque fois que vous cochez une case dans les colonnes Crédit ou Débit, la balance se met à jour en fonction du montant saisi dans la colonne Montant. Par ailleurs, si une valeur incorrecte est détectée, le script réinitialise automatiquement la balance à zéro et décoche les cases pour éviter toute incohérence.

Le code du script

Voici le code que vous pouvez insérer dans votre script Google Apps Script pour automatiser ce processus :

function onEdit(e) {
  const feuille = e.source.getActiveSheet();
  const range = e.range;
  const ligne = range.getRow();
  const colonne = range.getColumn();

  // On traite les colonnes A (1), C (3), et D (4)
  if (colonne !== 1 && colonne !== 3 && colonne !== 4) return;

  // Récupération du montant en colonne A
  let montant = feuille.getRange(ligne, 1).getValue();
  
  // Nettoyage du montant s'il contient des espaces ou des virgules
  if (typeof montant === 'string') {
    montant = parseFloat(montant.replace(/\s/g, '').replace(',', '.'));
  }

  // Gestion de la balance (colonne B)
  const balanceCell = feuille.getRange(ligne, 2);
  let balance = 0;

  // Si le montant n'est pas valide (NaN), remettre à zéro la balance et décocher les cases
  if (isNaN(montant) || montant === null) {
    balanceCell.setValue('0,00 €');
    feuille.getRange(ligne, 3).setValue(false); // Décocher Crédit
    feuille.getRange(ligne, 4).setValue(false); // Décocher Débit
    return;
  }

  // Si Crédit est coché (colonne C)
  if (colonne === 3 && range.getValue() === true) {
    feuille.getRange(ligne, 4).setValue(false); // Décocher Débit
    balance = montant;  // Montant en positif
  }

  // Si Débit est coché (colonne D)
  else if (colonne === 4 && range.getValue() === true) {
    feuille.getRange(ligne, 3).setValue(false); // Décocher Crédit
    balance = -montant;  // Montant en négatif
  }

  // Si rien n'est coché, réinitialiser la balance
  else if (colonne === 3 || colonne === 4) {
    balanceCell.setValue('0,00 €');
    return;
  }

  // Conversion du nombre en chaîne avec virgule et symbole €
  let balanceString = balance.toFixed(2).replace('.', ',') + " €";
  balanceCell.setValue(balanceString); // Affichage avec virgule et symbole €
}

Explication détaillée du code

Le script réagit aux modifications dans les colonnes Montant (A), Crédit (C) et Débit (D). Voici comment il fonctionne étape par étape :

  1. Surveillance des modifications : Le script se déclenche uniquement lorsque vous modifiez une des colonnes concernées.
  2. Validation du montant : Si le montant saisi est incorrect (par exemple, un texte non numérique ou une cellule vide), la balance se réinitialise à zéro et les cases Crédit et Débit se décochent automatiquement.
  3. Mise à jour de la balance : Lorsque vous cochez la case Crédit, le montant s’ajoute à la balance. Si vous cochez la case Débit, le montant est soustrait.
  4. Formatage des montants : Le script formate automatiquement les montants avec une virgule pour les décimales, suivie du symbole “€”, conformément aux normes françaises.

Pourquoi utiliser ce script ?


En automatisant cette tâche, vous gagnez du temps et réduisez les erreurs humaines. La mise à jour automatique de la balance évite les oublis, et la validation des montants assure la cohérence des données dans vos feuilles de calcul. De plus, le formatage des montants est toujours correct, ce qui garantit la clarté de vos informations.

Automatiser la gestion des crédits et débits dans Google Sheets avec Google Apps Script est une excellente manière de simplifier vos processus financiers. Ce script vous permet de gagner en précision et en efficacité tout en évitant les erreurs courantes liées à la saisie manuelle.


Soutenez mon travail

Si cet article vous a été utile et que vous souhaitez soutenir mon travail, vous pouvez me remercier en faisant un don via PayPal. Chaque contribution est grandement appréciée et m’aide à continuer à partager des astuces et conseils sur ce blog. Merci pour votre soutien !

L’Atelier Informatique vous accompagne dans vos projets technologiques en vous proposant des tutoriels et des solutions pour optimiser vos tâches quotidiennes