Mon script s'execute sans erreur mais je n'obtiens de resultats

Bonjour le forum

En travaillant sur un petit projet Google sheet, j'ai identifie cette communaute que j'ai rejointe immediatement.

Mon projet consiste a creer sur google sheet une facture pour ma micro entreprise avec possibilite de generation automatique des numeros et reinitialisation du template apres archivage automatique de la facture precedente. A cet effet, je suis tombe sur le post de "Megazb62" qui a travaille sur le sujet avec l'aide de Steelson. J'ai essaye d'appliquer les codes sur mon projet. Seulement je n'obtiens pas de resultats alors que la console m'indique bien que le script a ete execute sans erreur.

A toutes fins utiles, voici le message genere dans le journal d'execution :

12:13:15AvisExécution démarrée

12:13:16AvisExécution terminée

Je dois vous signaler au passage que je suis un utilisateur plutot moyen de Google sheet et que c'est la toute premiere fois que je m'avance sur Apps Script !

Pourriez vous me donner un coup de pouce SVP?

Jerry_2

Bonjour, et bienvenue ...

Peux-tu mettre une lien vers une copie de ton projet (anonymisé) afin de voir le code et reproduire le phénomène ?

Pour partager un fichier https://www.sheets-pratique.com/fr/cours/partage

Mikhail Staliyevich alias mike steelson

Merci pour la promptitude.

Je vais envoyer le lien de suite

image

Partage ton document comme suit https://www.sheets-pratique.com/fr/cours/partage

Ceci est le script que j'ai execute :

// Mon premier script. Archivage et reinitialisation de factures
function archiver() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var facture = doc.getSheetByName('Facture');
var adresses1 = ["F9","F12","B12","B13","B14","B15","B16","B17","B18"];
var destination1 = ["A","B","C","D","E","F","G","H","I"];
var adresses2 = ["F37","F38","F39","F40"];
var destination2 = ["J","k","L","M"];
var archive = doc.getSheetByName('historique_facture');
var ligne = premLigneVide(archive)
}
function premLigneVide(f) {
var col = 'A';
var valeurs = f.getRange(col + ':' + col).getValues().join().split(",");
var vide = valeurs.indexOf("") + 1;
return vide;
}
function effacer(){ {
var feuille = SpreadsheetApp.getActive (). getSheetByName ('Facture');
var sheet = SpreadsheetApp.getActiveSpreadsheet()
sheet.getRange ('F9'). clearContent ();
sheet.getRange ('F12'). clearContent ();
sheet.getRange ('B12:B18'). clearContent ();
sheet.getRange ('F37:F40'). clearContent ();
}
}

Je viens de partager egalement le sheet avec toi

Bonjour,

tester ceci

function archiver() {
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var facture = doc.getSheetByName('Facture');
  var adresses1 = ["F9", "F12", "B12", "B13", "B14", "B15", "B16", "B17", "B18"];
  var destination1 = ["A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2", "I2"];
  var adresses2 = ["F37", "F38", "F39", "F40"];
  var destination2 = ["J2", "k2", "L2", "M2"];
  var archive = doc.getSheetByName('historique_facture');
  archive.insertRowBefore(2);
  for (var i = 0; i < adresses1.length; i++) {
    archive.getRange(destination1[i]).setValue(facture.getRange(adresses1[i]).getValue());
  }
  for (var i = 0; i < adresses2.length; i++) {
    archive.getRange(destination2[i]).setValue(facture.getRange(adresses2[i]).getValue());
  }
}

Merci beaucoup

Ca marche pour l'archivage de la facture.

Comment puis-je proceder pour la remise a blanc de la facture ?

Infiniment merci a vous !

Jerry_2

soit vous employez votre fonction "effacer"

ou soit celle-ci

function eff() {
  var ss = SpreadsheetApp.getActive();
  ss.getRangeList(['E14', 'F9', 'F12', 'B12:B18', 'F37:F40']).clear({contentsOnly: true, skipFilteredRows: true});
};

vous pouvez aussi ajouter l'effacement à la suite de la fonction d'archivage c'est à dire avant la dernière accolade

Bonjour Gilbert

Toutes mes excuses pour le retard dans ma reponse.

Merci beaucoup pour le code pour effacer.

Il marche bien, sauf qu'il efface les formules alors que je m'attendais a ce que les formules restent pour pouvoir generer une nouvelle facture a chaque fois.

Avez-vous une idee de la solution ?

Par ailleurs, seulement la partie superieure de la facture est effacee mais pas les informations sur les produits.

Je vais continuer a chercher de mon cote aussi.

Encore une fois merci beaucoup

Jerry_2

Bonsoir,

Mike avait demandé le partage du fichier

sans celui-ci c'est difficile pour nous de répondre correctement

Partage ton document comme suit https://www.sheets-pratique.com/fr/cours/partage

Bonjour,

Il marche bien, sauf qu'il efface les formules alors que je m'attendais a ce que les formules restent pour pouvoir generer une nouvelle facture a chaque fois.

il ne faut justement pas effacer les cellules avec formules

Par exemple tu ne dois pas effacer sheet.getRange ('B12:B18'). clearContent (); mais seulement B12, les autres cellules étant liées avec B12. Pour éviter les #N/A tu peux rajouter un test sur le fait que B12 ne soit pas vide, par exemple pour B14

=IF(B12="";"";VLOOKUP(B12;info_client;4;0))

Au lieu de F37:F40, c'est B21:B36 que tu dois effacer (sans effacer la validation des données)

F9 et F12 ne doivent pas à mon sens être effacées.

Rechercher des sujets similaires à "mon script execute erreur obtiens resultats"