Remplir automatique des cases en fonction d'une cellule

Bonsoir tout le monde,

Dans le cadre d'un cursus scolaire, je souhaiterais remplir automatique des cases en fonction d'une cellule à l'aide d'un macro.

Dans mon cas, je souhaiterais un macro, mais je ne sais pas faire.

  1. Si le status est Brouillon, alors afficher automatiquement N/A dans les colonnes Date, Lien, Équipe, Date MAJ
  2. Si le status est Révision, alors afficher automatiquement N/A dans les colonnes Lien, Date MAJ
  3. À chaque saisie d'une nouvelle ligne, à chaque remplissage à n'importe quel colonne - la colonne N° s'incrémente automatiquement.

Je sais le faire sans macro, c'est à dire l'aide d'une fonction

=SI(C2="Brouillon";"N/A";"")

=A2+1

P.J: https://docs.google.com/spreadsheets/d/1JFXnSxyR5fO6odCsT5EbzmDGwNMLKYCBC8d82Ls9a04/edit?usp=sharing

Merci d'avance :)

Bonjour,

À chaque saisie d'une nouvelle ligne, à chaque remplissage à n'importe quel colonne - la colonne N° s'incrémente automatiquement.

Je sais le faire sans macro, c'est à dire l'aide d'une fonction

=SI(C2="Brouillon";"N/A";"")

=A2+1

proposition, à mettre en A1 et effacer ce qui se trouve en dessous

={"N°";arrayformula(if(B2:B="";;row(B2:B)-1))}

A tester et adapter si besoin (tu comprendras la logique j'espère)

voir ci-dessous

Attention, la validation de la colonne équipe n'admet pas N/A

Bonjour

Merci à vous, c'est assez clair la logique du code. Si je me trompes pas

Prendre les données dans la 3ème colonne (C)

[...] && cellule.getColumn()==3

getRange(colonne,ligne) - afficher sur la colonne F en question: N/A

feuille.getRange('F'+row).setValue('N/A')

Cependant, lorsque j'exécute le script, une message d'erreur apparaît:

Error

TypeError: Cannot read property 'source' of undefined on Edit @Code.gs:2

Comment lances-tu le script ? il ne faut pas le lancer via l'éditeur de script. C'est automatique dès que la case statut est renseignée. C'est cela qui déclenche la script. C'est bien ce que j'ai mis dans ton document qui fonctionne bien si j'en crois ce que je vois maintenant.

Si tu as adapté le code, remets nous ta mouture, on jettera un oeil.

Bonsoir,

Du coup, je suis désolé. Je suis un peu perdu. Je pensais qu'il faut le lancer dans l'éditeur de script. Il faut donc le lancer où ?

Bonne soirée à vous,

Merci :D

nulle part ! la fonction onEdit se lance automatiquement à chaque modification, et le script compare le nom de la feuille et la colonne (C)

if (feuille.getName()=='Feuille 1' && cellule.getColumn()==3)

et selon la valeur Révision ou Brouillon exécute les instructions.

Regarde sur le document que tuas posté https://docs.google.com/spreadsheets/d/1JFXnSxyR5fO6odCsT5EbzmDGwNMLKYCBC8d82Ls9a04/edit#gid=0

Bonjour,

Ah d'accord ! Je comprends mieux le fonctionnement. Cependant, Approuvé n'a été inclus dans le macro mais il est inclus dans le Sheets lorsque j'ai mis Approuvé et les cases se sont remplis automatiquement.

capture

Bonne journée et bon weekend,

Si tu veux aussi réagir à "Approuvé" il faut alors amender le script.

Je ne veux pas que Approuvé soit inclus dans le macro. Votre macro indique bien pour Révision et Brouillon.

Pourtant, Approuvé est inclus alors, que je ne veux le remplissage automatique pour ce statut.

Je pense que c'est parce que la ligne a été auparavant affectée d'un autre statut ... il faut donc peut-être que si c'est approuvé, effacer le N/A ? ou alors je n'ai pas bien compris.

Bonjour :)

  • Ne rien affecter à Approuvé (aucun remplissage automatique)
  • Lorsque le Status change à Approuvé, les N/A s'efface.

Bon après-midi à vous,

c'est donc bien ce que je pressentais ...

Si tu veux aussi réagir à "Approuvé" il faut alors amender le script.

je regarde

function onEdit(event){
  var feuille = event.source.getActiveSheet();
  var cellule = event.source.getActiveRange();
  if (feuille.getName()=='Feuille 1' && cellule.getColumn()==3){
    var row = cellule.getRow()
    if (cellule.getValue()=='Révision'){
      feuille.getRange('F'+row).setValue('N/A')
      feuille.getRange('H'+row).setValue('N/A')
      feuille.getRange('I'+row).setValue('N/A')
      feuille.getRange('J'+row).setValue('N/A')
    }
    else if (cellule.getValue()=='Brouillon'){
      feuille.getRange('H'+row).setValue('N/A')
      feuille.getRange('J'+row).setValue('N/A')
    }
    else if (cellule.getValue()=='Approuvé'){
      if (feuille.getRange('F'+row).getValue()=='N/A'){feuille.getRange('F'+row).setValue('')}
      if (feuille.getRange('H'+row).getValue()=='N/A'){feuille.getRange('H'+row).setValue('')}
      if (feuille.getRange('I'+row).getValue()=='N/A'){feuille.getRange('I'+row).setValue('')}
      if (feuille.getRange('J'+row).getValue()=='N/A'){feuille.getRange('J'+row).setValue('')}
    }
  }
}
Rechercher des sujets similaires à "remplir automatique cases fonction"