04 januari 2019

Namen kiezen met selectievakjes

Stel je wilt uit een lijst van namen er snel een aantal selecteren, bijvoorbeeld voor aan- afwezigheid of om ze een mailtje te sturen enzovoort.
In Google Sheets kan je dan gebruikmaken van selectievakjes in combinatie met een simpele formule.

In het voorbeeld hiernaast staat een aantal namen in kolom A vanaf A3.
In kolom B plaats je nu selectievakjes (via Invoegen).

Nu zet je in C3 de volgende formule:
=ArrayFormula(SORT(ALS(B3:B=WAAR;A3:A;)))

Wanneer je nu vinkjes achter namen zet zullen deze automatisch en gesorteerd verschijnen in kolom C vanaf C3!

Helaas werkt dit niet in Excel...

Wil je nu met één vinkje in cel B1 alle vinkjes weer verwijderen en de selectie dus leegmaken, dan moet je een klein scriptje installeren via Extra <> Scripteditor.
Vervang wat daar staat door de volgende code:
function onEdit(e){
   if(e.range.getA1Notation() == 'B1' &&
      e.range.getSheet().getName() == 'Blad1'
    )
    e.source.getRange('B1:B').clear()
}
Geef het scriptje een naam en sla deze op.

Wanneer je nu een vinkje zet in het selectievakje in B1 zorgt bovenstaand script ervoor dat de hele kolom B leeggemaakt wordt!

De functie onEdit(e) wordt gezien als een simpele trigger en hoeft daarom niet apart geautoriseerd te worden.

Natuurlijk is dit nog verder uit te bouwen door een selectie te maken uit verschillende klassenlijsten en bijvoorbeeld e-mailadressen toe te voegen zodat je snel de e-mailadressen kunt gebruiken bij de geselecteerde namen. Zie daarvoor onderstaand filmpje:



Lees ook het vervolg op deze blogpost: Namen van tabbladen gebruiken in Formules

2 opmerkingen:

  1. Dag Willem,

    Ik heb je suggestie uitgeprobeerd. Erg leuk!
    Ik heb alleen de formule aan moeten passen. Deze moet zijn: =ArrayFormula(SORT(IF(B3:B=TRUE;A3:A;))), anders verwijst hij naar verkeerde cellen.

    Ik hoop nog veel suggesties van je te mogen zien!

    BeantwoordenVerwijderen
    Reacties
    1. Hallo Henk,
      Je hebt helemaal gelijk!
      Ik kopieerde de code uit een andere sheet met een wat andere indeling, slordig zoals ik ben. Ik heb de tekst nu aangepast!

      Verwijderen