Est-il possible dans Google Forms de donner une valeur unique à chaque ligne insérée dans la feuille de calcul ainsi que l'horodatage?
google-sheets
google-forms
Toby Allen
la source
la source
Réponses:
Vous pouvez le faire en ajoutant un déclencheur de script.
Supposons que votre formulaire actuel comporte deux colonnes
Timestamp
et la réponse à une question. Vous disposez donc actuellement des colonnes A et B remplies de données. Supposons que vous vouliez que la colonne C ait votre numéro d'incrémentation automatique.Vous devez d'abord aller à
Tools
>Script Editor
Dans la fenêtre de l'éditeur de script, saisissez le script suivant:
Enregistrez le script, puis allez dans le
Triggers
menu et sélectionnezCurrent script's triggers
Remplissez les listes déroulantes comme suit:
Cliquez sur
Save
Ensuite, enregistrez et fermez la fenêtre Google App Script.
Maintenant, lorsque votre formulaire est soumis, il remplira le numéro de ligne dans la colonne C avec les données qui ont été soumises via votre formulaire.
Si vous souhaitez modifier la colonne dans laquelle le numéro de ligne est enregistré, vous devez modifier cette ligne du script:
sheet.getRange(row,3).setValue(row);
et remplacez la valeur 3 par le numéro d'index de colonne correspondant.
la source
Suite à l'excellente réponse de Barry, si vous voulez pouvoir supprimer des lignes et conserver un identifiant unique, vous pouvez avoir une cellule statique qui conserve un décompte. Vous pouvez ensuite utiliser ce numéro et l'incrémenter à chaque nouvelle entrée de la table.
La modification consisterait donc à conserver un numéro quelque part sur votre feuille de calcul («M1» dans le code ci-dessous) et à modifier le code pour qu'il ressemble à ceci:
Encore une fois, modifiez l'avant-dernière ligne pour modifier l'emplacement de votre ID.
la source
S'appuyant sur les deux réponses précédentes (de Barry et Danny):
En supposant que la colonne ID est la colonne A. Choisissez une cellule "Next ID" et définissez-la selon la formule suivante (en supposant qu'elle se trouve dans "P1"):
Créez un script à l'aide de l'éditeur de script dans le menu "Outils" et collez-le comme suit:
Ajoutez un déclencheur de script à l'aide du menu "Déclencheurs" de l'éditeur de script:
la source
Suite aux réponses ci-dessus - Cette solution ne nécessite pas de cellule de feuille de calcul supplémentaire.
Vous pouvez utiliser les gestionnaires d'événements intégrés pour soumettre le formulaire afin d'obtenir un identifiant unique. Étant donné que la feuille de calcul n'est que la destination du formulaire, la suppression d'une ligne ne supprime pas réellement la réponse. Dans cet esprit...
EDIT: suppression du besoin d'ID et résolution des problèmes de formatage de la date.
la source
getUniqueID
fonction peut être grandement simplifiée en renvoyant simplement la longueur des réponses à ce jour (c'est ce que fait la logique de cette fonction décrite ci-dessus de manière plutôt compliquée). Fondamentalement, une seule ligne dans la fonction:return getConnectedForm().getResponses().length;
Ceci est un dérivé des autres réponses mais il pourrait être utile pour les futurs utilisateurs.
La principale différence est qu'il mettra à jour la colonne 1 de la ligne active lorsque cette ligne est modifiée, mais uniquement si aucune valeur n'est déjà spécifiée.
Vous devez définir le déclencheur comme mentionné dans les autres réponses lors de la modification.
la source
Pour "Est-il possible dans Google Form de donner une valeur unique à chaque ligne insérée dans la feuille de calcul ainsi que l'horodatage?" tout en permettant également la suppression d'une ligne dans la feuille de réponses du formulaire avant l'ajout d'une autre réponse sans dupliquer les valeurs, cela devrait fonctionner:
la source