Script pour supprimer une ligne si cellule contient texte spécifique

Bonjour à tous !

Help please

J'ai un tableau de suivi pour mes devis édités et lorsque je lance ma macro, cela me rajoute une ligne dans mon tableau de suivi avec les infos du devis en question. Mon problème c'est que, si je lance plusieurs fois la macro pour un même devis, alors cela me créer systématiquement une nouvelle ligne tandis que je voudrais que ça remplace la ligne existante. Par exemple, si je lance 3 fois ma macro pour un même devis, j'obtiens :

capture d ecran 2021 06 06 a 15 55 20

J'aimerais donc que ma macro vérifie si la ligne avec le numéro de devis en question existe déjà, pour soit la remplacer, soit la supprimer et en ajouter une nouvelle (je sais pas ce qui est le mieux).

Le tableau de suivi (photo ci-dessus) se trouve dans la feuille 'suivi-des-devis!', et le numéro de devis du devis en question se trouve dans la feuille 'DEVIS!' en E6

Voilà le bout de la macro qui me permet de remplir le tableau de suivi lorsque j'enregistre un devis :

//remplir le fichier de suivi des devis

var f1 = doc.getSheetByName('DEVIS');

var f2 = doc.getSheetByName('Suivi-des-devis');

var f3 = doc.getSheetByName('MODIFICATIONS');

var adresses = ["E6", "L5", "E7","T37","T38","T39","L6"];

var destination = ["B2","C2","E2","K2","L2","M2","N2"];

f2.insertRowBefore(2);

for (var i = 0; i < adresses.length; i++){

f2.getRange(destination[i]).setValue(f1.getRange(adresses[i]).getValue());

}

f2.getRange('I2').setValue(f3.getRange('C19').getValue());

f2.getRange('J2').setValue(f3.getRange('C18').getValue());

f2.getRange('D2').setValue(f3.getRange('K2').getValue());

f2.getRange('F2').setValue(f3.getRange('C15').getValue());

f2.getRange('G2').setValue(f3.getRange('H28').getValue());

f2.getRange('H2').setValue(f3.getRange('I28').getValue());

MERCI BCP A CEUX QUI ACCEPTERONT DE M'AIDER !

Bonjour,

remplace cette ligne

f2.insertRowBefore(2);

par cette ligne

if (f1.getRange('E6').getValue()!=f2.getRange('B2').getValue()) {f2.insertRowBefore(2);}

pas testé, fait à "main levée"

Comme d'habitude présent pour m'aider, merci !

Ca fonctionne très bien ! Merci beaucoup :) !

sauf que, j'ai été un peu vite, c'est ok pour la dernière facture, si tu veux que cela le soit aussi pour les anciennes factures, il faut que je te donne un autre script !

Ah mince !

Je veux bien, si cela ne vous dérange pas évidemment ! ^^

Rechercher des sujets similaires à "script supprimer ligne contient texte specifique"