Partager une portion seulement d'un tableau ?

Pour les solutions d'envoie par email ou de recopie dans un fichier pour lecture seule, c'est toi qui doit actionner le script. On peut toutefois programmer une fréquence d'une heure par un déclencheur (plutôt la fonction de recopie pour ne pas encombrer la boite aux lettres !)

Bonjour,

as-tu réussi in fine à faire fonctionner ?

Bonjour à mon avis il y a qlq chose que je ne dois pas bien faire car il ne se passe rien.

J'ai restauré (pour m'y retrouver ma version colorée car tout avait disparu) ensuite j'ai été voir le script et il y a toujours l'erreur quand je fais exécuter

Quelque chose m'échappe... Peux tu m'expliquer comment je dois procéder ?
(Je suis novice depuis 1 semaine sur google sheet )

Je ne comprends pas trop ce que je dois mettre en lecture seule ? Est le document coloré ?
Dois je faire une copie du TCD Test et ensuite partager ce document en lecture seule (je m'enbrouille un peu) ?

J'ai une copie de la feuille

=> TCD Test souci stock" ensuite je le partager en lecture seule mais je suis déjà coincée avec la copie qui me donne ce resultat...

capture

il y a 2 scripts que fait le Maj ?
le 2e j ai compris qu'il devrait envoyer le mail ?

(je suis un peu perdue dans la procédure a suivre )

Merci pour ton aide

ok, je vai essayer d'être plus clair ... prenons pour le moment le script maj

function maj(){
  var id = 'id du fichier public'  
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ma feuille') 
  var data = sh.getDataRange().getDisplayValues()
  var dest = SpreadsheetApp.openById(id).getSheets()[0]
  dest.getDataRange().clear()
  dest.getRange(1,1,data.length,data[0].length).setValues(data)
  Browser.msgBox('Fichier mis à jour !')
}

L'objectif est d'écrire dans un fichier en lecture seule et conserver le fichier source en "non-partagé"

Pour cela

  • mets bien le nom de la feuille de ton fichier source que tu veux "partager" dans le script
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ma feuille') 
  • ensuite :
    • crée un nouveau fichier sans rien dedans (*),
      • donne un titre quelconque,
      • partage le en lecture,
      • note l'identifiant du nouveau fichier
    • inscris l'identifiant (*) du nouveau fichier (et surtout pas celui du fichier source) dans le script
var id = 'id du fichier public' // le fichier qui sera en lecture seule
  • lance le script maj et regarde si ton nouveau fichier reçoit bien le tableau

(*) tu peux utiliser dans un premier temps ce fichier https://docs.google.com/spreadsheets/d/1_u9E--3rTip-XNCVHjdJfmHCxrJrTWdgLQHeUIyKdSk/edit#gid=0 et cet id 1_u9E--3rTip-XNCVHjdJfmHCxrJrTWdgLQHeUIyKdSk

1 Première Etape

Je vais commencer avec ton lien en bas ; ton fichier s'appel "test"
( https://docs.google.com/spreadsheets/d/1_u9E--3rTip-XNCVHjdJfmHCxrJrTWdgLQHeUIyKdSk/edit#gid=0

Dans ce fichier "test" (qui représente normalement le fichier que je ne peux pas partager ? )

1. j'ai rajouté ton script Maj dans la feuille "test ? (c'est bien cela ?)
2. et en plus j'ai crée un nouveau fichier vide que j'ai appelé "feuille email"
3. "feuille email" que j'ai été partagé en lecture pour récupérer son ID
4 j'ai copieè/collé l'ID de la "feuille email" dans ton script qui avait été placé dans l'éditeur de la feuille "test"

Résultat dans l'éditeur de script : il m 'indique une erreur

capture6

Humm je vais essayer de copier coller dans l'autre feuille mettre ce script dans la "feuille email"

Le fichier "test" ( il représente le fichier que je ne peux pas partager ? )

1. j'ai crée un nouveau fichier vide que j'ai appelé "feuille email"
2. "feuille email" que j'ai été partagé en lecture pour récupérer son ID
3 J'ai ouvert l'éditeur de script de la feuille Email et j'ai copié/collé l'ID dans ton script
4. j'ai enregistré le projet dans l'éditeur et exécuter et voici le résultat

capture7

Est ce correcte pour la première étape ?
Tu m'avais parlé de voir une date mais je ne sais trop ou voir cette date ?
Car dans la feuille de calcul "feuille email" il n y a absolument rien c'est toujours vide il n'y a aucune date.

ok, parfait, donc mets cet id à la place de celui que j'avais indiqué (en réalité tu ne devais pas avoir les droits d'écriture via le script en dépit du fait que j'avais mis tout le monde en écriture !)

image

change bien aussi ceci

var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ma feuille') 

avec le nom de TA feuille qui est Test Souci Stock mais qui semble vide aujourd'hui

j'ai ajouté un menu en haut à droite pour déclencher la recopie

une fois que tu as réussi à remettre au point ton TCD et que tu as réussi à transférer les informations sur l'autre fichier on regardera pour améliorer

ok, parfait, donc mets cet id à la place de celui que j'avais indiqué


Je m'y retrouve plus ... Je met l'ID (lequel maintenant) et ou ??
jm'arrache les cheveux c'est vraiment pas simple...

Bon je stop pour ce soir je n'arrive plus à me concentrer et je reprends ca demain matin à tête reposée

Le truc c'est que je ne comprends rien à ce que je fais avec les script (car c'est du chinois pour moi) alors c'est difficile pour qlq un qui n'utilise pas ce langage

Merci pour ton aide

supprimé

@oceanina ... est-ce que tout fonctionne ? on peut alors passer aux améliorations éventuelles.

Comme tu parlais de date, il serait bien de mettre la date de dernière mise à jour du fichier de lecture, par exemple dans le titre ... ce que je viens d'ajouter.

https://docs.google.com/spreadsheets/d/1_u9E--3rTip-XNCVHjdJfmHCxrJrTWdgLQHeUIyKdSk/edit?usp=sharing

Le script modifie le titre du fichier pour y inclure la date

        var d = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd HH:mm");
        fichier.setName(' bla bla ..... : ' + d)

si cela te gêne, supprime ces 2 lignes

Je reviens ici on va procéder par étape (je vais essayer de ne pas me dissiper partout )

Comment as tu fait ce tableau ? Est ce une copie ? si oui vient t'elle de mon fichier "Feuille Essai" ?
https://docs.google.com/spreadsheets/d/1-hm-UylEoJ6acX-6Dxklk6d9s8KJpzOS2AaYi2E_gPk/edit#gid=0&fvid=...

Ou tu l'as fait autrement ?
et comment fais tu pour ajouter une date dans titre ? (un script ?) Car je présume que cette date va actualisée a chaque fois dans le titre ?

Cette option titre + date m'intéresse

date

Le tableau est bien une copie générée par le script du fichier original. Et c'est aussi ce script qui modifie le nom du fichier avec sa date.

Pour cela, utilise le menu en haut à droite du fichier original.

image

Nota : dans le monde google, le nom d'un fichier est juste une "information lambda", en aucun cas l'identifiant du fichier comme dans le mode windows. Il faut parfois savoir en profiter ! Content que cela t'intéresse, c'est la première fois que je le fais !

Ok jusque là ca va :))

Donc si je modifie les ingrédients dans mon tableau de base
ta tableau que tu as créer va se modifier dans les quantités ?

=> Je viens d'essayer en modifiant le tableau en ligne 69 j'ai "utilisé 1 prune mais il n a pas modifié le tableau "information stocks"

Faut il utiliser ton menu ? pour que cela fonctionne ?
=> je viens de tester la réponse à ma question est oui et effectivement ca fonctionne il modifie ton fichier "information stocks"

2 Questions => Hier on avait fait plein de choses :

Le fichier que tu m'avais demandé de créer hier on laisse sur le coté ? celui que j'avais appelé (Feuille email) ?
Feuille email qui était nouveau fichier auquel j'avais du donné un titre (que j'avais titré Feuille email) et que je devais partager en lecture seul pour récupérer l'ID

Pour le moment on s'occupe pas ?

=> Je viens d'essayer en modifiant le tableau en ligne 69 j'ai "utilisé 1 prune mais il n a pas modifié le tableau "information stocks"

Faut il utiliser ton menu ? pour que cela fonctionne ?
=> je viens de tester la réponse a ma question est oui et effectivement ca fonctionne il modifie ton fichier "information stocks"

ouf ! en effet ...

image

Le fichier que tu m'avais demandé de créer hier on laisse sur le coté ? celui que j'avais appelé (Feuille email) ?
Feuille email qui était nouveau fichier auquel j'avais du donné un titre (que j'avais titré Feuille email) et que je devais partager en lecture seul pour récupérer l'ID

Ce serait bien que tu reprennes l'id de ce fichier et que tu le mettes dans le script à la place de 1_u9E--3rTip-XNCVHjdJfmHCxrJrTWdgLQHeUIyKdSk car en réalité ce fichier, c'est moi qui l'ait créé, il vaudrait mieux que tu en sois propriétaire ... donc autant prendre celui que tu as créé, et qui changera de nom à chaque recopie des données.

Fais un essai en y mettant le nouvel id.

Donc avec le tableau que tu as créer "information de stock" (avec cette méthode)
je pourrais partager ce tableau avec mon fournisseur sans envoyer de mail ? Moi je dois juste utiliser ton menu pour "mettre a jour" et hop mon fournisseur aura les dernière quantité qu il reste dans mon stock.
(vu qu'il n y pas d info confidentiel mais que dans ce tableau il n'y a que les info dont il a besoin)

Et pour cette méthode : le projet partager une partie/ d'un tableau est finie ? je dois juste le partager en lecture seule avec la personne concernée ?

Donc avec le tableau que tu as créer "information de stock" (avec cette méthode)
je pourrais partager ce tableau avec mon fournisseur sans envoyer de mail ? Moi je juste utiliser ton menu pour "mettre a jour"
(vu qu'il n y pas d info confidentiel mais que dans ce tableau il n'y a que les info dont il a besoin)

absolument

Et pour cette méthode : le projet partager une partie/ d'un tableau est finie ? je dois juste le partager en lecture seule avec la personne concernée ?

oui, comme ton fournisseur n'aura pas accès à ton fichier de travail, il ne pourra pas voir le reste

OK j'essay maintenant d'ajouter l'id de mon fichier créer hier

BON... je prend une grosse respiration... je souffle un bon coup
J'essaye maintenant de ramener ce script en lien avec ma feuille '"feuille email"

Rhoooo ca fonctionne

il a changé le nom de mon fichier "feuille email" avec le nom de ton fichier mais il est devenu "mien"

maj
Rechercher des sujets similaires à "partager portion seulement tableau"