Importrange et saisies manuelles de données

Avatar de l’utilisateur
jippeo

Membre tout neuf
Messages : 1
Inscription : 18 juil. 2024 11:19

Importrange et saisies manuelles de données

Message par jippeo »

Bonjour,

J'ai un fichier GoogleSheet destiné à avoir avec plusieurs onglets pour un suivi général d'événements (pointage billetterie, action de communication, etc.).
Je souhaite avoir un 1er onglet avec l'ensemble des informations d'un événement et d'autres onglets de suivi ne piochant que certaines données de ce 1er onglet et y ajouter par la suite des données manuelles selon les objectifs (un 2e onglet billetterie par exemple, un 2e stratégie de comm, etc.).

Pour l'exemple j'ai créé un fichier avec seulement 2 onglets :

- le 1er onglet intitulé "Events" est une liste d'événements avec toutes les données utiles dans autant de colonnes possibles (pour l'exemple 7 colonnes de données)

- dans un 2e onglet intitulé "Suivi" j'utilise la fonction "=query(IMPORTRANGE("lien du fichier";"Events!A1:E500"); "SELECT Col2, Col3")" pour faire apparaitre dans les colonnes A et B les données des colonnes 2 et 3 de mon 1er onglet

- jusqu'ici tout va bien

- à ce 2e onglet "Suivi" j'ajoute à partir de la colonne C des colonnes de suivi pour un pointage billetterie (par exemple) que je rentre manuellement (1x par semaine par exemple, donc potentiellement 52 colonnes à partir de la colonne C)

- lorsque j'ajoute un événement dans mon 1er onglet "Events", tout va bien s'il se situe en fin de liste

- mais lorsque j'ajoute un évènement entre 2 événements existants (par exemple entre mes lignes 4 et 6 dans l'exemple, en rouge), cela apparait bien dans le 2e onglet à la bonne place sur les colonnes automatisées mais mes données entrées manuellement (à partir de la colonne C) ne bougent pas (dans l'exemple la ligne 5 devrait être vide à partir de la colonne C car les données devraient se décaler d'une ligne vers le bas).

- comment faire pour que les données saisies manuellement se décalent lors de l'ajout d'un événement dans mon 1er onglet ?

J'ai tenté plusieurs choses, des formules ou des appscript. Soit cela ne fonctionnait pas, soit cela me décalait de plus d'une ligne vers le bas.Le fichier est consultable ici :
https://docs.google.com/spreadsheets/d/ ... sp=sharing

Merci pour votre aide

Jippeo
Thierry

Coach Numericoach
Invétéré
Messages : 123
Inscription : 11 sept. 2022 20:27
A remercié : 1 fois
Remercié : 21 fois

Re: Importrange et saisies manuelles de données

Message par Thierry »

Bonjour Jippeo,Je comprends bien ton souci et la frustration que cela peut engendrer. Pour résoudre le problème du décalage des données manuelles dans ton onglet "Suivi" lorsque tu ajoutes des événements dans l'onglet "Events", il faut utiliser un script Google Apps Script. Ce script va s'assurer que toutes les données se décalent correctement lorsque tu modifies ton premier onglet.Voici un guide étape par étape pour créer et utiliser ce script :Étape 1 : Accéder à Google Apps Script
  1. Ouvre ton fichier Google Sheets.
  2. Va dans le menu Extensions > Apps Script.
Étape 2 : Créer le script
  1. Supprime tout le contenu dans l'éditeur de script et remplace-le par le code suivant :
 javascript
Copier le code

Code : Tout sélectionner

function onEdit(e) { var sheet = e.source.getActiveSheet(); if (sheet.getName() == "Events") { var range = e.range; if (range.getNumRows() > 1 || range.getNumColumns() > 1) return; // Only process single cell edits var row = range.getRow(); var col = range.getColumn(); if (col == 1) { // Assuming the first column is the event name or unique identifier var suiviSheet = e.source.getSheetByName("Suivi"); var data = suiviSheet.getDataRange().getValues(); data.splice(row, 0, []); // Add an empty row at the correct position suiviSheet.getRange(1, 1, data.length, data[0].length).setValues(data); } } } 
Étape 3 : Enregistrer et autoriser le script
  1. Clique sur l'icône de disquette pour enregistrer le script et donne-lui un nom, par exemple "OnEditScript".
  2. Va dans le menu Exécuter > onEdit. La première fois que tu exécutes le script, tu devras autoriser les autorisations nécessaires. Suis les instructions pour accorder les autorisations.
Étape 4 : Tester le script
  1. Retourne à ton onglet "Events" et ajoute un nouvel événement entre deux événements existants.
  2. Vérifie l'onglet "Suivi" pour voir si les données manuelles se sont décalées correctement.
Explications supplémentaires :
  • Le script écoute les modifications dans l'onglet "Events". Lorsqu'une cellule est modifiée dans la première colonne (que l'on suppose être l'identifiant unique de l'événement), il insère une ligne vide correspondante dans l'onglet "Suivi".
  • Ce script peut être ajusté selon tes besoins spécifiques, notamment si l'identifiant unique n'est pas dans la première colonne.
Cette approche devrait résoudre le problème du décalage des données manuelles dans ton onglet de suivi. Si tu rencontres des difficultés ou si tu as des questions supplémentaires, n'hésite pas à revenir sur le forum.Bonne continuation et merci d'avoir fait appel à Numericoach !Excellente journée, Thierry
Répondre

Rejoignez la discussion 💬

Vous devez être enregistré pour participer à la discussion et échanger avec les différents membres

Inscrivez-vous dès aujourd'hui

Vous n'êtes pas encore membre ? Rejoignez-nous gratuitement dès aujourd'hui et contribuer en postant votre réponse ou question sur tous les forums disponibles

Inscription

Connectez-vous