Démarrer un query 1 ligne sous la formule

Hello

J'utilise un query très classique mais ensuite je fais un tri par valeur sur une colonne. Si bien que la première ligne qui possède la formule du query peut se retrouver à la ligne 10. Conséquence, je perds les données des 9 premières lignes

Je souhaiterais par conséquent mettre mes titres en ligne 1, mettre ma bdd en ligne 3 et donc insérer une ligne 2 où j'insère ma formule avec le query mais en demandant à ce que le query ne s'écrive qu'à partir de la ligne 3

Ainsi je ferai mon tri personnalisé à partir de la ligne 3 et j'arreterai de déplacer ma formule

C'est possible?

Ou alors on peut faire un tri sans que ca touche aux formules?

BOn en fait c'est débile, même si je mets le query au desuss, à chaque fois il va me réécrire le query donc je n'ai pas de tri sur les colonnes générées par le query

Il faudrait que ma colonne de tri soit intégrée dans le query pour pouvoir utiliser la fonction order mais ce n'est pas le cas

Je n'ai pas d'autres choix que de copier coller en valeur les données pour les trier.

Bonjour,

J'ai cherché et jamais trouvé de solution si ce n'est via un script remplaçant Query, si quelqu'un a une idée de résolution je suis preneur.

J'ai pensé faire une première macro où je copie colle ma bdd en valeur puis je la trie. Ca ca fonctionne

Puis pour remettre à jour ma bdd sans tri avec le query, j'ai crée une macro enregistré où je supprime toute la bdd triée et je remet dans ma première cellule le query.

function reinit() {

var spreadsheet = SpreadsheetApp.getActive();

spreadsheet.getRange('A5:I6').activate();

var currentCell = spreadsheet.getCurrentCell();

spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();

currentCell.activateAsCurrentCell();

currentCell = spreadsheet.getCurrentCell();

spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();

currentCell.activateAsCurrentCell();

spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});

spreadsheet.getRange('A5').activate();

spreadsheet.getCurrentCell().setValue('=query(BILAN!A4:J200, "select A, B, C, D, E, F, G, H where H LIKE \'%P%\' order by G ASC")');

spreadsheet.getRange('A6').activate();

};

Mais le query ne fonctionne alors pas alors que son écriture est correcte. #ERROR "erreur d'analyse de formule"

Il apparait ainsi :

image

alors qu'il devrait apparaitre ainsi :

image

comme si ma plage de données n'était pas liée

ca fonctionne si je modifie avec setformula

spreadsheet.getCurrentCell().setFormula('=query(BILAN!A4:J200;"select A, B, C, D, E, F, G, H where H LIKE \'%P%\' order by G ASC")');

Je vais donc faire comme ça:

-une macro qui copie colle en valeur le query puis qui trie les données

- une macro qui supprime tout et qui remet le query

Alors, dans de tel cas perso je retire complètement la formule et j'insère les données par un script, insérer une fonction par script est bancale, tu peux complètement remplacer le fonctionnement de query par un script et ainsi filtrer ensuite comme tu veux tes données importées.

Bonjour,

Je ne sais pas si j'ai bien compris le but de la manoeuvre...

Mais si tu veux juste une ligne vide sous ta formule QUERY, tu peux utiliser ça :

={transpose({"";"";"";"";"";"";"";""});query($A$3:$H$12;"select A, B, C, D, E, F, G, H  order by G ASC")}

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

Cordialement,

Fil.

Rechercher des sujets similaires à "demarrer query ligne formule"