Alimenter une feuille "evolution" grâce à une sauvegarde hebdomadaire ?

Bonjour !

Pour ceux qui suivent mes sujets depuis quelques temps, je me fait un document de suivi incluant des achats / rentes.

Maintenant que j'ai tout les éléments pour finaliser mon doc. J'ai une dernière interrogations.

La source de tout mes calculs etc.. est une API que je mets à jour manuellement ( extension API sur sheet ).

Le fournisseur de cette API mets à jour les valeurs et par conséquent cela a un impact sur mon dashboard.

Une possibilité pour moi de sauvegarder des donnees precises 1x par semaine pour alimenter une feuille de suivi ? ( automatique idéal, sinon manuel )

Je suppose que c'est une automatisation d'un vulgaire "copier/coller" de valeur à un instant "x"

Merci !

Si une explication n'est pas suffisante, j'essayerai de faire un classeur dans le week-end, malgré que ça ne soit pas représentatif de mon .doc. :).

Concrètement c'est juste un report de données pour garder une trace de l'évolution

On n'est pas très loin de ce sujet alors ...

https://forum.excel-pratique.com/sheets/enregistrement-programe-158686#p982131

précise si tu veux sauvegarder une feuille ou tout le fichier ? sur un seul et même fichier ou un par semaine ? et dans quel répertoire ...

L'automatisation est possible à fréquence hebdo par un déclencheur.

Merci je vais regarder ce sujet attentivement.

J'aurais aimé cibler quelques éléments de plusieurs feuilles d'un même document.

Si ce n'est pas "possible" je repenserai mon document de manière à synthétiser ce que je souhaite "sauvegarder" sur une seul page.

( à terme, le but étant de faire un graphique de l'évolution)

Bonjour,

je relance ce dernier sujet.

On n'est pas très loin de ce sujet alors …

J'ai plutôt l'impression que c'est pour sauvegarder des pages entières, de mon coté je recherche quelque chose de "plus simple"

la notion de sauvegarde dans mes recherches google n'est pas bonne, je ne trouve pas de résultat "adéquat" au même titre qu'un report de ligne

Après réflexion j'avais imaginé ceci qui représente un simple report de ligne à l'instant "T"

capture

le doc de la capture est ici

merci et bon week-end a vous !

à adapter

function archiver(){
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var f1 = SpreadsheetApp.getActive();
  var f2 = doc.getSheetByName('Archive');
  var adresses = ["D1","B3","D3","B5"]; // les cellules concernées
  var destinations = ["B2","C2","D2","E2"]; // les colonnes où seront reportées les valeurs
  f2.insertRowBefore(2);
  for (var i = 0; i < adresses.length; i++){
    f2.getRange(destinations[i]).setValue(f1.getRange(adresses[i]).getValue());
  }
}

+ déclencheur hebdo

Merci !

Puis-je changer le sens d'enregistrement ? ( résultat + récent en bas )

Bonne soirée

Oui bien sûr ... j'avais adopté ce sens car quelqu'un me l'avait demandé et je l'avais adopté, car au bout de x semaines, il faut scroller la fenêtre pour avoir les données. Et en programmation c'était plus simple.

function archiver(){
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var f1 = doc.getSheetByName('Main');
  var f2 = doc.getSheetByName('Archive');
  var adresses = ["D1","B3","D3","B5"]; // les cellules concernées
  var destinations = ["B","C","D","E"]; // les colonnes où seront reportées les valeurs
  var li = f2.getLastRow()+1;
  for (var i = 0; i < adresses.length; i++){
    f2.getRange(destinations[i]+li).setValue(f1.getRange(adresses[i]).getValue());
  }
}

. j'avais adopté ce sens car quelqu'un me l'avait demandé et je l'avais adopté, car au bout de x semaines, il faut scroller la fenêtre pour avoir les données

l'argument est bon en effet, je me serait sûrement dis la même chose après quelques dizaines de lignes.

ca va me permettre aussi de voir la différence de structure du script et me permettre de comprendre !

Tout est utile !

Merci !!

et l'autre argument aussi est la taille de la feuille, tu débutes avec seulement 2 lignes, et ensuite via l'insertion la feuille s'agrandît

je ne sais pas ce qui se passe quand tu emplafonnes le nbre de lignes sinon

en effet, je vais rester sur la 1ere version 😉

hello, je déterre ce post pour 2 petites choses ( simple je dirais :D )

voici le script pour reporter des cellules et créer une sauvegarde

function Saisie(){
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var f1 = SpreadsheetApp.getActive();
  var f2 = doc.getSheetByName('ACHAT');
  var adresses = ["B3","C3","D3","E3","F3","G3"];
  var destinations = ["B5","C5","D5","E5","F5","G5"];
  f2.insertRowBefore(2);
  for (var i = 0; i < adresses.length; i++){
    f2.getRange(destinations[i]).setValue(f1.getRange(adresses[i]).getValue());
    }
}

1) comment créer la sauvegarde sur cette même feuille ? j'ai essayé mais les décalages de lignes sont incompréhensible

capture

et en 2ieme question, j'ai un script pour mon "clear" j'aimerai faire une 1 seul script en faite ( qui sauvegarde et supprime le contenu saisie ensuite )

je ne parviens pas a a voir un résultat en les assemblant

function Reset() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('ACHAT');
  sheet.getRange('B3:G3').clearContent();
   }

Merci bien !

Pour bien comprendre, tu veux mettre la ligne 5 en ligne 3 et effacer la ligne 5 ?

Pour bien comprendre, tu veux mettre la ligne 5 en ligne 3 et effacer la ligne 5 ?

lorsque je mets du contenu dans la partie encadrée ( B3:G3 ) j'aimerai que ça me reporte ces données en B5:G5

et que ça supprime ce que j'avais mis au préalable en B3:G3 dans mon "formulaire".

en gros le travail qu'on avait fait avec une sauvegarde sur une autre feuille de mon classeur, j'aimerai la mettre sur la même feuille

si j'ai été plus clair... sinon dit moi :)

merci

Etape 1) saisie de mes données

capture

Etape 2) -> cliquer sur "save"

capture2

Etape 3)

capture3

pas du tout testé, écrit avec le bloc-notes !

function Transfert() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('ACHAT');
  var valeurs = sheet.getRange('B3:G3').getValues();
  sheet.getRange('B5:G5').setValues(valeurs);
  sheet.getRange('B3:G3').clearContent();
}

pas du tout testé, écrit avec le bloc-notes !

alors le mouvement est bon ! mais ça écrase ce qui est déjà présent en B5:G5 j'aimerai la meme reaction que ce script :

function Saisie(){
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var f1 = SpreadsheetApp.getActive();
  var f2 = doc.getSheetByName('ACHAT');
  var adresses = ["B3","C3","D3","E3","F3","G3"];
  var destinations = ["B5","C5","D5","E5","F5","G5"];
  f2.insertRowBefore(2);
  for (var i = 0; i < adresses.length; i++){
    f2.getRange(destinations[i]).setValue(f1.getRange(adresses[i]).getValue());
    }
}

a savoir reporter des données sans écraser les anciennes, il faudrait un melange de ces 2 scripts

ajoute

sheet.insertRowBefore(5);
function Transfert() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('ACHAT');
  var valeurs = sheet.getRange('B3:G3').getValues();
  sheet.insertRowBefore(5);
  sheet.getRange('B5:G5').setValues(valeurs);
  sheet.getRange('B3:G3').clearContent();
}

ajoute

sheet.insertRowBefore(5);

j'étais en train de bricoler avec cet élément justement, le mots clé manquant c'était "Sheet"

merci beaucoup !

Rechercher des sujets similaires à "alimenter feuille evolution sauvegarde hebdomadaire"