Effacer les lignes vides d'un tableur Google Sheet

Bonjour,
J'ai trouvé sur le web un script pour supprimer les lignes vides d'un tableur Google Sheet. Le script fontionne sur le modèle test en pièce jointe sélectionnant avant manuellement la 2e colonne d'une liste de noms (inventés ici) qu'il trie et dont il supprime les lignes vides. Or je souhaiterais sur ce modèle :
1) que le script sélectionne automatiquement la deuxième colonne B des noms (C étant celle des prénoims),
2) que la sélection sur la colonne se fasse seulement à partir de A1 (A est la liste des numéros croissants du tableau créé, pas celle originelle du tableur) même s'il devait y avoir avant des lignes de texte décalant un peu le tableau vers le bas,
3) que la liste ne soit pas triée et donc que l'ordre original soit respecté
4) si possible il y ait un bouton pour déclencher le script.
Pouvez-vous m'aider ?
Merci

function removeBlanks() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var selectedRange = ss.getActiveRange();
selectedRange.sort({column: 2, })
}
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Data')
.addItem('Remove Blanks', 'removeBlanks')
.addToUi();
};
LISTE D'ATTENTE
Cette feuille vous permet de vous positionner sur la liste d'attente
NOMPRENOM
1Joubarsylvie
2MolotovMartine2
3
4ManigotAndré4
5LepetitOdile
6RibouxDidier
7
8BourdieuMonique2
9OriganGérard5
10
11
12
13
14

Bonjour,

Tu peux utiliser ça:

function supblancs(){

  var sheet=SpreadsheetApp.getActive().getSheetByName('test')
  var e=sheet.getRange('B'+sheet.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).getRow()  
            for (k=1;k<=e;k++) {
              if(sheet.getRange('B'+k).getValue()=='') {
                sheet.deleteRow(k);
                k=1;e--
                if(k==e){break};
                SpreadsheetApp.flush();
              }
            }
}
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Script')
.addItem('Suppresssion des blancs', 'supblancs')
.addToUi();
};

Tu as un accès dans le menu "Script"...

Pour déclencher via un bouton, tu as plein de tutos sur le net...

Cordialement,

Fil.

@Filoche, Merci beaucoup pour ton attention, j'obtiens une erreur :

Journal d'exécution

12:14:23 Avis Exécution démarrée

12:14:24 Erreur TypeError: Cannot read properties of null (reading 'getRange')

supblancs @ Code.gs:4

Remplace dans le script: 'test' par 'le nom de ta feuille':

var sheet=SpreadsheetApp.getActive().getSheetByName('test')

Et, ça devrait le faire...

Même erreur après divers essais, voilà une capture

11

@Filoche, il me faut partir. Je reviendrai sur le forum tard ce soir sans doute, sinon les jours suivants. Merci encore pour ton aide !

Pour être plus précis:

Remplace dans le script: 'test' par 'le nom de ton onglet':

Bonsoir, mettre le nom de l'onglet ne change rien (ici avec une copie nommée "Liste"). Par contre le debogage m'indique toujours la même selection violette

capture

Bonjour,

J'ai adapté le script à ta feuille et il fonctionne avec toutes les feuilles actives...

function supblancs(){

  var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  var e=sheet.getRange('B'+sheet.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).getRow()  
            for (k=5;k<=e;k++) {
              if(sheet.getRange('B'+k).getValue()=='') {
                sheet.deleteRow(k);
                k=5;e--
                if(k==e){break};
                SpreadsheetApp.flush();
              }
            }
}
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Script')
.addItem('Suppression des blancs', 'supblancs')
.addToUi();
};


Ce script fonctionne parfaitement et je te joins une copie du test:

https://docs.google.com/spreadsheets/d/1mfnXbipeuep20eS7GL9_3uBhc6oVTwH1luD9sRU2u4w/edit?usp=sharing

Cordialement,

Fil.

@Filoche - Super Bravo !!! J'ai testé ce dernier script sur les 2 formes des tableaux ici en changeant seulement la valeur de "k" et ça marche.

Je n'ai pas eu besoin de me loguer pour le script via ton lien de vérification pour cela.

Mille fois merci pour ton accueil et ton attention.

Rechercher des sujets similaires à "effacer lignes vides tableur google sheet"