Google Apps Script : Automatiser l’ajout structuré de clients dans une feuille BDD avec copie intelligente de formules
📌 Titre :
Google Apps Script : Automatiser l’ajout structuré de clients dans une feuille BDD avec copie intelligente de formules
🔍 Objectif de la fonction
La fonction Ajouter_Client_dans_BDD() permet d’ajouter automatiquement les données d’un client préparé dans une feuille active (type formulaire) vers une feuille nommée "BDD". Elle remplit dynamiquement les colonnes selon les libellés, copie certaines formules, ajoute un enregistrement dans une feuille "Ren-Contrat" et nettoie les champs de saisie pour la prochaine entrée.
📦 Vue d'ensemble de la structure
La feuille active contient les données de saisie organisées en blocs de colonnes en paires :
-
F/G,I/J,K/L,M/N,O/P,Q/R
Où la colonne de gauche contient le libellé (ex : "Nom", "Ville") et celle de droite la valeur saisie.
⚙️ Détail de la fonction principale
🧠 Fonction principale : Ajouter_Client_dans_BDD()
Étapes principales :
-
Validation des prérequis : si la feuille n’est pas prête (
A1 ≠ PouG2 vide), on arrête. -
Copie des ID : les champs
AB3(ID) etAB2(Num) sont copiés versAB4etAB5. -
Identification de la ligne cible dans la BDD.
-
Ajout des champs fixes (ID & Num) à partir de
AB4etAB5. -
Remplissage des blocs dynamiques selon les en-têtes de la ligne 10.
-
Copie des formules (ex : "P1 Mad Date Ren-Contrat", "RECHERCHE DIVERS") depuis la ligne précédente.
-
Ajout d’un modèle de ligne dans la feuille
"Ren-Contrat". -
Nettoyage des zones de saisie.
🔧 Fonctions secondaires
✅ remplirValeursFixes(source, target, row, headers)
Ajoute les valeurs de AB4 et AB5 (ID et Num client) dans les colonnes correspondantes de la feuille BDD, en se basant sur les en-têtes de la ligne 10.
🔁 remplirBlocs(source, target, row, headers, blocs)
Lit les libellés et les valeurs dans les blocs F:G à Q:R et insère les données selon les correspondances dans la feuille BDD.
⚙️ Optimisation :
-
Un seul appel à
.getValues()pour lire tout le blocF2:R8(au lieu de lire cellule par cellule). -
Utilise une fonction
colLetterToIndex()pour convertir les lettres des colonnes ("F","G", etc.) en index numériques.
🧮 copierFormules(sheet, newRow, headers, colTitre)
Copie la formule R1C1 d’une colonne désignée (ex. "P1 Mad Date Ren-Contrat") depuis la ligne précédente vers la nouvelle.
📄 ajouterRenContrat(feuilleContrat, idEcole)
Ajoute une nouvelle ligne dans la feuille "Ren-Contrat" :
-
Copie les formules de la ligne précédente.
-
Ajoute l’
ID Ecoledans la bonne colonne.
🧹 nettoyerSaisie(sheet)
Efface les champs de saisie après l'ajout pour préparer la feuille à un nouveau client.
📚 Annexe : fonction d’utilité
colLetterToIndex(letter)
Convertit une lettre de colonne (ex: "F") en numéro (6), utile pour accéder à des cellules dynamiquement.
✅ Exemple d’utilisation
Quand un utilisateur prépare un client avec :
-
A1 = "P" -
G2renseigné (nom du VEF) -
Des données dans les blocs F:G à Q:R
Il peut cliquer sur un bouton ou déclencher la fonctionAjouter_Client_dans_BDD()pour : -
Enregistrer les données dans la
BDDselon les libellés. -
Dupliquer automatiquement les formules nécessaires.
-
Ajouter un suivi dans la feuille
"Ren-Contrat".
🧠 Pourquoi ce script est puissant ?
✅ Dynamique : les libellés déterminent l’emplacement — aucun lien figé.
✅ Rapide : lecture optimisée des blocs.
✅ Sécurisé : conditions de validation au début.
✅ Réutilisable : architecture modulaire et claire.
Commentaires
Enregistrer un commentaire