Dénombrer le nombre de consultation d'un document

Bonjour,

J'aimerais connaître le nombre de personnes qui consultent un fichier : existe-t-il un moyen pour cela ?

Merci d'avance

Bonjour,

Il est possible de mettre en place un script dans Google Sheets pour enregistrer le nombre de vues sur un fichier. Cependant, il est important de noter que cela ne fonctionnera que si le fichier est partagé via un lien et que les personnes qui le consultent ont activé JavaScript dans leur navigateur.

Voici un exemple de script qui pourrait être utilisé pour suivre le nombre de vues :

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var viewsSheet = sheet.getSheetByName("Views"); // Créez une feuille nommée "Views" pour stocker les données de vues
  var lastRow = viewsSheet.getLastRow();
  var currentDate = new Date().toLocaleDateString(); // Récupère la date actuelle

  // Vérifie si une ligne pour la date actuelle existe déjà, sinon l'ajoute
  if (lastRow == 0 || viewsSheet.getRange(lastRow, 1).getValue() != currentDate) {
    viewsSheet.appendRow([currentDate, 1]); // Ajoute une nouvelle ligne pour la date actuelle avec une vue
  } else {
    var views = viewsSheet.getRange(lastRow, 2).getValue(); // Récupère le nombre de vues actuel
    viewsSheet.getRange(lastRow, 2).setValue(views + 1); // Incrémente le nombre de vues
  }
}

Pour utiliser ce script :

  1. Dans Google Sheets, ouvrez le fichier pour lequel vous souhaitez suivre les vues.
  2. Cliquez sur "Extensions" dans la barre de menu, puis sélectionnez "Éditeur de scripts".
  3. Collez le script fourni dans l'éditeur de scripts.
  4. Enregistrez le script en cliquant sur l'icône de disquette ou en sélectionnant "Fichier" > "Enregistrer".
  5. Fermez l'éditeur de scripts.
  6. À partir de maintenant, chaque fois que quelqu'un ouvre le fichier, le script sera exécuté et enregistrera la date et le nombre de vues dans une feuille nommée "Views".

Assurez-vous de partager votre fichier via un lien afin que les vues puissent être suivies. Gardez à l'esprit que ce script ne sera pas en mesure de suivre les vues si le fichier est ouvert dans l'application Google Sheets mobile, car les scripts ne sont pas pris en charge dans cette application.

Cdlt

Alex

Bonjour Alex,

Merci pour le script.

Il fonctionne globalement : le seul reproche que je peux y faire, c'est que quand je clique plusieurs fois sur le lien c'est que, au lieu de cumuler les vues dans la même ligne (puisque même date), il me rajoute une nouvelle ligne avec la même date et un nombre de vues égal à 1 :

image

Bon, c'est vrai que je peux faire la somme dans une autre cellule mais si jamais tu vois rapidement d'où peut provenir ce petit "problème".

Merci

Bonjour,

Le format de date change, ce pourquoi tu as plusieurs lignes.

Il faut contraindre Apps Script à ne se servir que d'un format, dans le script d'@Alexander modifie cette ligne :

  var currentDate = new Date().toLocaleDateString(); // Récupère la date actuelle

Par cette ligne :

  var currentDate = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'dd/MM/yyyy');

Puis, cette ligne :

if (lastRow == 0 || viewsSheet.getRange(lastRow, 1).getValue() != currentDate) {

Par cette ligne :

  if (lastRow == 0 || viewsSheet.getRange(lastRow, 1).getDisplayValue() != currentDate) {

Voici le script au complet si besoin :

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var viewsSheet = sheet.getSheetByName("Views"); // Créez une feuille nommée "Views" pour stocker les données de vues
  var lastRow = viewsSheet.getLastRow();
  var currentDate = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'dd/MM/yyyy');
  // Vérifie si une ligne pour la date actuelle existe déjà, sinon l'ajoute
  if (lastRow == 0 || viewsSheet.getRange(lastRow, 1).getDisplayValue() != currentDate) {
    viewsSheet.appendRow([currentDate, 1]); // Ajoute une nouvelle ligne pour la date actuelle avec une vue
  } else {
    var views = viewsSheet.getRange(lastRow, 2).getValue(); // Récupère le nombre de vues actuel
    viewsSheet.getRange(lastRow, 2).setValue(views + 1); // Incrémente le nombre de vues
  }
}

Une autre façon, si c'est la même date il additionne le nombre de vu, sinon ajoute une ligne à une autre date et ainsi de suite...

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var viewsSheet = sheet.getSheetByName("Views"); // Assurez-vous que le nom de la feuille est correct
  var lastRow = viewsSheet.getLastRow();
  var currentDate = new Date().toLocaleDateString(); // Récupère la date actuelle

  // Recherche si une ligne pour la date actuelle existe déjà
  var dateColumn = viewsSheet.getRange("A:A").getValues();
  var existingRow = dateColumn.findIndex(function(row) {
    return row[0] === currentDate;
  });

  // Si une ligne pour la date actuelle existe, incrémente le nombre de vues
  if (existingRow !== -1) {
    var views = viewsSheet.getRange(existingRow + 1, 2).getValue(); // Récupère le nombre de vues actuel
    viewsSheet.getRange(existingRow + 1, 2).setValue(views + 1); // Incrémente le nombre de vues
  } else {
    // Sinon, ajoute une nouvelle ligne pour la date actuelle avec un nombre de vues à 1
    viewsSheet.appendRow([currentDate, 1]);
  }
}

Merci à tous les 2

Rechercher des sujets similaires à "denombrer nombre consultation document"