Eviter les effacement de lignes par les collègues

Arfff, j'ai essayé de mettre la fonction point virgule pour l'onglet "Saisie" et forcément

c'est plus délicat car c'est dans des cellules précises et non des colonnes.

function saisir(){
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var f1 = SpreadsheetApp.getActive();
  var n = f1.getRange('F14').getValue();
  var m = f1.getRange('F15').getValue();
  if (n == 6 && m == 1) {
    var origine = ["C3","C5","F3","C7","F5","C9","C13","F11","F7","C11","F9"];
    var destination = ["A","B","C","D","E","F","G","H","J","K","L"];
    var f2 = doc.getSheetByName('BdD');
    var derL = f2.getLastRow() + 1;
    for (var i = 0; i < origine.length; i++){
      f2.getRange(destination[i] + derL).setValue(f1.getRange(origine[i]).getValue());
    }
    f1.setActiveSelection(origine[0]);
  } else {
    Browser.msgBox('Merci de renseigner tous les champs et de ne renseigner que le crédit ou le débit !');
    f.setActiveSelection(origine[1]);
  }
   // changement point en virgule
  if (columnToLetter(r.getColumn()) == 'C' || columnToLetter(r.getColumn()) == 'F'){ 
      var nombre = event.value;
      if (isNaN(nombre)){}else{
        var res = nombre.replace(".", ",");
        r.setValue(res);
      }
    }
}

J'ai précisé les cellules concernées et ça ne fonctionne toujours pas.

if (columnToLetter(r.getColumn()) == 'C11' || columnToLetter(r.getColumn()) == 'F9'){

Masque l'onglet BdD ... mais rien n'est garanti à 100% de protection.

Faut-il aussi adjoindre l'interdiction de modifier l'onglet BdD si quelqu'un le fait apparaître ?

Je vais regarder la coup de la virgule !

essaie ceci, dans la mesure où il n'y a plus de gestion d'évènement, la transformation se fera lors de l'enregistrement dans la base de données

...

edit : j'ai test cela ne fonctionne pas, je réfléchis !

Masque l'onglet BdD ... mais rien n'est garanti à 100% de protection.

Je vais pas le masquer mais le cadenasser car on aura besoin de filtrer certaines colonnes pour des recherches d'écritures par le biais du N° de pièce (ticket de caisse, facture Etc...) ou N° de note de frais (pour les remboursements)

Je vais protéger la feuille et "exclure certaines cellules" (colonnes "i") pour que chaque personnes puissent pointer les montant débités de leur compte bancaire.

Faut-il aussi adjoindre l'interdiction de modifier l'onglet BdD si quelqu'un le fait apparaître ?

non merci, je vais modeler selon les besoins.

Merci

essaie ceci, dans la mesure où il n'y a plus de gestion d'évènement, la transformation se fera lors de l'enregistrement dans la base de données

...

edit : j'ai test cela ne fonctionne pas, je réfléchis !

J'ai envie de dire que le problème n'est peut-être pas dans la "BdD" mais dans la "saisie" car quand je m'étais un chiffre rond ex: 12,00€ dans la "saisie" ça me mettait pareil dans la "BdD"

1- Il est tout à fait possible de reprendre le code propos par Sébastien

https://forum.excel-pratique.com/sheets/google-sheets-fonction-remplace-point-en-virgule-du-pave-num...

function onEdit(e) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var Sheet = ss.getActiveSheet();
    var Rg = Sheet.getActiveCell();
    var virg = e.value;
    if (!isNaN(virg)) {
        var res = virg.replace(".", ",");
        Rg.setValue(res);
        // ss.toast(res)
    }
}

mais il faut le faire à part dans le cadre d'une fonction évènementielle onEdit avec un déclencheur.

IL faut juste l'adapter en testant la feuille d'une part (sheet), et la cellule d'autre part (Rg).

Ceci permettrait en effet de corriger sur la feuille de saisie avant de renvoyer vers la base de données

... ce qui fait

function onEdit(event) {
  var f = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  if (f.getName() == 'Saisie'){
    if (r.getA1Notation() == 'C11' || r.getA1Notation() == 'F9') {
      var val = event.value;
      if (!isNaN(val)) {
        var res = val.replace(".", ",");
        r.setValue(res);
      }
    }
  }
}

2- l'autre solution avec laquelle j'étais parti était de transformer le point en virgule lors du transfert vers la feuille BdD.

Ah j'y avais pensé ! mais avec un nouveau fichier script. (A chacun son métier et les vaches seront bien gardées)

Magnifique ! Merci

J'ai mis moi-même le déclencheur pour tester. Je pense qu'il vaudrait mieux que je l'efface et que ce soit toi qui en est le propriétaire. Après tu peux me couper le lien vers ton appli.

J'ai mis moi-même le déclencheur pour tester. Je pense qu'il vaudrait mieux que je l'efface et que ce soit toi qui en est le propriétaire. Après tu peux me couper le lien vers ton appli.

De mon coté tout fonctionne correctement !

Si on est au bout de cette grande aventure, n'oublie pas de clore le fil de discussion en cliquant sur

Bonjour Steelson, j'ai présenté aux collègues ton super travail et forcément il y a eu du changement (jamais content ) donc déjà j'ai changé l'interface cette nuit et j'ai noté 2 choses. (Là ça devient de l'exigence )

  1. Serait-il possible d'effacer la ligne d'écriture (de l'onglet saisie) au moment ou l'on clic sur le bouton bleu (il y a eu des entremêlages avec l'écriture précédente, nous avons des collègues de tout âge et qui n'ont pas l'habitude de l'informatique)
  2. Il y a une grosse barre rouge qui apparaît lorsque l'on fait une erreur (ex: si l'on rempli pas tous les champs) il y a bien ta boite de dialogue mais il y a en plus cette barre qui pourrait faire peur à certains. (d'après les réactions des uns pour les autres)

voici le nouveau lien c'est une copie que tu peux modifier à souhait.

https://docs.google.com/spreadsheets/d/16oIObfswSPNr0Ye2Ue8vlzQZVQyZ2LT9uqgop2jiodw/edit?usp=sharing

Si on est au bout de cette grande aventure, n'oublie pas de clore le fil de discussion en cliquant sur

En effet c'était une belle et grande aventure, un plaisir !

PS: Je ne trouve pas la case à cocher.

Merci

Pour la suppression j'ai déjà anticipé !

Pour le reste, je regarde ...

C'est fait ! (et j'avais en effet une erreur corrigée !)

On a omis une autre solution ... https://docs.google.com/forms/u/0/

On a omis une autre solution ... https://docs.google.com/forms/u/0/

Bonjour Steelson, J'ai essayé une fois par curiosité et ça envoyé un formulaire, genre avec une question ou les gens devaient répondre pour un rendez-vous ou une prestation terminée etc... mais si tu en parles c'est certainement parce qu'il y a une autre possibilité d'utilisation que je n'ai pas exploité.

Encore un grand merci pour ton travail, ça fonctionne à merveille !

Si on est au bout de cette grande aventure, n'oublie pas de clore le fil de discussion en cliquant sur

Je ne trouve pas la petite case à cocher "résolu"

Faut-il aussi adjoindre l'interdiction de modifier l'onglet BdD si quelqu'un le fait apparaître ?

Arffff. je ne pensais pas rencontrer ce problème, en effet j'ai protégé la feuille BdD et lorsqu'une personne écrit une ligne et clic sur le bouton pour valider ça met ce message d'erreur et la ligne n'est pas écrite.

Exception: Vous tentez de modifier une cellule ou un objet protégés.

Si vous avez besoin d'effectuer cette modification,

demandez au propriétaire de la feuille de calcul de supprimer la protection.

Oups copie du lien.

https://docs.google.com/spreadsheets/d/1rY9NhJ-mOfbIsSDlu-5U5BweuWc6b-QQcktUqJ8sqRk/edit#gid=0

Sur le lien donné, je n'ai pas eu ce message.

  • On m'a demandé une autorisation à exécuter le script (probable que chacun ait donc à le faire). Et ensuite tout allait bien !
  • Mais je pouvais auparavant écrire aussi directement dans la BdD sans soucis.
  1. Question 1 : c'est normal que la police dans BdD soit blanche ? c'est pour rendre transparent ?
  2. Question 2 : quand on clique directement sur l'image après avoir renseigné la valeur sans changer de cellule cela plante; j'avais résolu cela avec le passage auto d'une zone à l'autre. Je propose d'ajouter
  f1.setActiveSelection('A3');

fais un test (je l'ai mis dans la macro)

On m'a demandé une autorisation à exécuter le script (probable que chacun ait donc à le faire). Et ensuite tout allait bien !

Oui en effet chaque personne ajoutait doit le faire.

Mais je pouvais auparavant écrire aussi directement dans la BdD sans soucis.

Puisque ça ne fonctionnait pas j'ai retiré la protection de la feuille.

Question 1 : c'est normal que la police dans BdD soit blanche ? c'est pour rendre transparent ?

J'ai eu la farce aussi, je t'avais fait une copie du précédent et lorsque je l'ai remis à ma sauce je ne voyait pas mes lignes elles étaient blanche sur blanche.

Je viens de faire un test :

Le script saisir a rencontré une erreur.

J'ai protégé les feuilles, tu peux faire des tests de ton côté c'est une copie.

Rechercher des sujets similaires à "eviter effacement lignes collegues"