Macro pour masquer des colonnes sous condition
Bonjour,
J'aimerai créer une macro permettant de masquer des colonnes selon l'entête de celles-ci. Dans le fichier que j'ai mis en lien, je souhaite masquer par exemple les élèves de la classe PS1 pour n'afficher que ceux de PS2 ou inversement. Idéalement il me faudrait des "boutons" par classe pour cliquer dessus et afficher ou masquer les classes. Je suis novice en ce qui concerne les macros et j'essaie pour l'instant de comprendre le langage script.
Voici le lien pour le fichier exemple :
https://docs.google.com/spreadsheets/d/1cyKRVJxaooEo5ksJ49WZx1ykkDmuoN9Ya-Ninve4-P4/edit?usp=sharing
Merci d'avance pour votre aide.
J'ai finalement réussi à trouver le script que je mets ici pour d'autres:
function masquerColonnes() {
var feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var enTetes = feuille.getRange(1, 1, 1, feuille.getLastColumn()).getValues()[0];
for (var i = 0; i < enTetes.length; i++) {
var enTete = enTetes[i];
if (enTete.startsWith("G1")) {
var colonneIndex = i + 1; // L'index de colonne commence à 1
feuille.hideColumns(colonneIndex);
}
}
}Problème résolu.
Bonjour,
J'avais bricolé un petit script avec une case à cocher te permettant de passer automatiquement d'une classe à l'autre :
function onEdit(e) {
if (e.range.getA1Notation() != "A2") return;
if (e.value == "TRUE") {
var feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var enTetes = feuille.getRange(1, 1, 1, feuille.getLastColumn()).getValues()[0];
feuille.showColumns(2,20);
for (var i = 0; i < enTetes.length; i++) {
var enTete = enTetes[i];
if (enTete.startsWith('PS1')) {
var colonneIndex = i + 1;
feuille.hideColumns(colonneIndex);
};
};
}
else if (e.value == "FALSE") {
var feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var enTetes = feuille.getRange(1, 1, 1, feuille.getLastColumn()).getValues()[0];
feuille.showColumns(2,20);
for (var i = 0; i < enTetes.length; i++) {
var enTete = enTetes[i];
if (enTete.startsWith('PS2')) {
var colonneIndex = i + 1;
feuille.hideColumns(colonneIndex);
};
};
}
}https://docs.google.com/spreadsheets/d/1cyKRVJxaooEo5ksJ49WZx1ykkDmuoN9Ya-Ninve4-P4/edit?usp=sharing
Cordialement,
Fil.