Macro pour effacer des cellules si valeur texte dans une colonne

Bonjour.

Je souhaite améliorer ma macro pour effacer certaines colonnes en ajoutant une condition qu'il faut qu'une valeur quelconque soit inscrite dans une colonne en particulier.

Étant donné qu'il y a des formules dans les colonne F, G, I et J, mon script actuel efface de la colonne/ligne B5 à E200, la colonne H à partir de la ligne 5 et me décoche toute la colonne en K.

Je voudrais ajouter une condition que si une valeur est inscrite dans la colonne H à partir de la ligne 5, alors il m'efface les valeurs de la ligne correspondante dans les colonnes B à E, H, et décoche K.

J'ai fouiller un bon moment les internets, mais je n'ai pas réussi à réaliser mon petit projet.

Quelqu'un saurait-il m'aider ?

function ResetPM() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRangeList(['B5:E200', 'H5:H200']).activate();
  spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true})
  spreadsheet.getRange('K5:K200').activate();
  spreadsheet.getActiveRangeList().uncheck();
};
image

Bonjour,

Pour commencer, à titre informatif, sache que tu peux réduire ton code actuel comme ceci (car il n'est pas utile de sélectionner les plages avec Activate pour les traiter) :

function resetPM() {
  const f = SpreadsheetApp.getActiveSheet();
  f.getRangeList(['B5:E200', 'H5:H200']).clearContent();
  f.getRange('K5:K200').uncheck();
}

Et le même code dans une boucle pour effacer la ligne seulement si H n'est pas vide :

function resetPM() {
  const f = SpreadsheetApp.getActiveSheet();
  for (let i = 5; i <= 200; i++) {
    if (f.getRange('H' + i).getValue() !== '') {
      f.getRangeList(['B' + i + ':E' + i, 'H' + i]).clearContent();
      f.getRange('K' + i).uncheck();
    }
  }
}

Cordialement,

Bonjour, merci beaucoup pour votre réponse.

Ça marche parfaitement, je suis trop contente, mille mercis encore ! Je vais gagner tellement de temps grâce à vous et merci aussi pour la petite astuce pour réduire le code, l'ayant générer avec l'enregistrement de macro de Google Sheet, je n'y avais pas touché en pensant que ça pouvait être réduit en ligne. C'est toujours bon à savoir en tout cas !

En vous souhaitant une bonne fin de journée

Rechercher des sujets similaires à "macro effacer valeur texte colonne"