Ajouter un commentaire avec un script

Bonjour,

J'utilisais Excel mais je viens de passer sur google sheet. Dans mon fichier Excel j'utilisais une macro pour ajouter des commentaires automatiquement des commentaires à des cellules.

Pouvez-vous m'aider pour convertir ma macro Excel en script google sheet ? Merciiiiiii d'avance pour votre temps et votre aide

La macro qui fonctionne sous Excel est :

Sub AjoutCommentaire()
Dim rng As Range
Dim Formule As String
Dim valeurFormule As Variant
Dim cell As Range

' Spécifiez la plage où vous souhaitez ajouter le commentaire (B18 à M26)
Set rng = Range("B18:M26")

' Vérifiez si la feuille est protégée et si oui, désactivez la protection avant d'ajouter le commentaire
If rng.Worksheet.ProtectContents Then
rng.Worksheet.Unprotect
End If

' Parcours chaque cellule de la plage
For Each cell In rng
Formule = "=IF(COUNTIF('Base de données Intervenants'!$F:$F, " & TEXT(cell.Address, "@texte") & ") > 0, INDEX('Base de données Intervenants'!$G:$G, MATCH(" & TEXT(cell.Address, "@texte") & ",'Base de données Intervenants'!$F:$F, 0)), """")"
valeurFormule = Application.Evaluate(Formule)

If valeurFormule <> "" Then
If cell.comment Is Nothing Then
cell.AddComment Text:=CStr(valeurFormule)
cell.comment.Visible = False ' Cacher le commentaire par défaut
Else
cell.comment.Text Text:=CStr(valeurFormule)
End If
Else
cell.ClearComments ' Supprime le commentaire existant s'il y en a un
End If
Next cell
End Sub

Bonjour,

Je ne connais pas le VBA mais voici ce que propose l'IA, à tester :

function AjoutCommentaire() {
  // Accéder à la feuille active
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // Spécifiez la plage où vous souhaitez ajouter le commentaire (B18 à M26)
  var range = sheet.getRange("B18:M26");

  // Vérifiez si la feuille est protégée et si oui, désactivez la protection avant d'ajouter le commentaire
  var protection = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET);
  if (protection.length > 0 && protection[0].canEdit()) {
    protection[0].remove();
  }

  // Parcours chaque cellule de la plage
  var values = range.getValues(); // Récupère les valeurs dans la plage

  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      var cell = range.getCell(i + 1, j + 1); // Obtenir chaque cellule
      var cellValue = values[i][j]; // La valeur de la cellule actuelle
      var formula = '=IF(COUNTIF(\'Base de données Intervenants\'!$F:$F, ' + cell.getA1Notation() + ') > 0, INDEX(\'Base de données Intervenants\'!$G:$G, MATCH(' + cell.getA1Notation() + ',\'Base de données Intervenants\'!$F:$F, 0)), "")';

      var valeurFormule = SpreadsheetApp.getActiveSpreadsheet().getRangeByName('Base de données Intervenants!$F:$F').getCell(1, 1).offset(0,0,1,1).getValue();

      if (valeurFormule != "") {
        if (cell.getNote() == "") {
          cell.setNote(valeurFormule); // Ajouter le commentaire (note) à la cellule
        } else {
          cell.setNote(valeurFormule); // Mettre à jour le commentaire existant
        }
      } else {
        cell.setNote(''); // Supprime le commentaire existant s'il y en a un
      }
    }
  }

  // Réactiver la protection de la feuille si nécessaire
  if (protection.length > 0) {
    protection[0].setUnprotectedRanges([]);
  }
}
Rechercher des sujets similaires à "ajouter commentaire script"