Tri sur Google sheets par macro javascript sur plusieurs colonnes
Fermé
infm
Messages postés
29
Date d'inscription
jeudi 20 mars 2008
Statut
Membre
Dernière intervention
23 mars 2023
-
Modifié le 13 févr. 2020 à 11:06
infm Messages postés 29 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 23 mars 2023 - 15 févr. 2020 à 10:41
infm Messages postés 29 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 23 mars 2023 - 15 févr. 2020 à 10:41
A voir également:
- Google sheet trier par date
- Google maps satellite - Guide
- Dns google - Guide
- Excel trier par ordre croissant chiffre - Guide
- Google earth - Télécharger - 3D
- Google - Guide
3 réponses
PapyLuc51
Messages postés
4423
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
19 décembre 2024
1 449
Modifié le 13 févr. 2020 à 17:22
Modifié le 13 févr. 2020 à 17:22
Bonjour,
Si on peut trier plusieurs colonnes sur la feuille entière et sans macro ; procédure :
• Ctrl+A pour sélectionner la feuille entière (ou clic dans la case à gauche de A et au dessus de 1)
• Onglet "données" >> trier une plage
• Cocher si la ligne 1 de la feuille comporte les en-têtes (si ce n'es pas le cas il faudra sélectionner à partir de la première ligne du tableau)
• Trier par colonne (choix) A>Z
• Ajouter une colonne pour le tri
• puis par colonne (choix) A>Z.....
Cordialement
Si on peut trier plusieurs colonnes sur la feuille entière et sans macro ; procédure :
• Ctrl+A pour sélectionner la feuille entière (ou clic dans la case à gauche de A et au dessus de 1)
• Onglet "données" >> trier une plage
• Cocher si la ligne 1 de la feuille comporte les en-têtes (si ce n'es pas le cas il faudra sélectionner à partir de la première ligne du tableau)
• Trier par colonne (choix) A>Z
• Ajouter une colonne pour le tri
• puis par colonne (choix) A>Z.....
Cordialement
infm
Messages postés
29
Date d'inscription
jeudi 20 mars 2008
Statut
Membre
Dernière intervention
23 mars 2023
13 févr. 2020 à 17:46
13 févr. 2020 à 17:46
Merci mais ce n'est pas ce que je cherche.
Cela je sais le faire.
Mais tous les utilisateurs ne sauront pas le faire.
Donc je crée des boutons auxquels j'associe les différents tris utiles.
Et là il faut préparer des macros.
Ces macros sont en java script
j'en ai créé pour plage à trier du type suivant :
function TriDateEtNom() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('3:1000').activate()
.sort([{column: 4, ascending: true}, {column: 1, ascending: true}]);
};
Dans cette macro mon problème c'est que le 1000 (dernière ligne) soit remplacé par une variable car le nombre de lignes est évolutif et cela je n'ai pas réussi.
J'ai choisi le tri donc d'une plage car pour tri d'une feuille je n'ai pas trouvé la syntaxe permettant de trier sur plusieurs colonnes comme ci-dessus la colonne 4 suivie de la colonne 1.
Voilà : trouver le script (en javascript) pour remplacer ce que l'on fait facilement en manuel.
J'ai construit des scripts sur feuille à trier ressemblant à celui ci-dessus mais toujours erreur, il manque qq chose et je ne vois pas ce qui manque?
A suivre donc.
Cela je sais le faire.
Mais tous les utilisateurs ne sauront pas le faire.
Donc je crée des boutons auxquels j'associe les différents tris utiles.
Et là il faut préparer des macros.
Ces macros sont en java script
j'en ai créé pour plage à trier du type suivant :
function TriDateEtNom() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('3:1000').activate()
.sort([{column: 4, ascending: true}, {column: 1, ascending: true}]);
};
Dans cette macro mon problème c'est que le 1000 (dernière ligne) soit remplacé par une variable car le nombre de lignes est évolutif et cela je n'ai pas réussi.
J'ai choisi le tri donc d'une plage car pour tri d'une feuille je n'ai pas trouvé la syntaxe permettant de trier sur plusieurs colonnes comme ci-dessus la colonne 4 suivie de la colonne 1.
Voilà : trouver le script (en javascript) pour remplacer ce que l'on fait facilement en manuel.
J'ai construit des scripts sur feuille à trier ressemblant à celui ci-dessus mais toujours erreur, il manque qq chose et je ne vois pas ce qui manque?
A suivre donc.
PapyLuc51
Messages postés
4423
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
19 décembre 2024
1 449
15 févr. 2020 à 07:56
15 févr. 2020 à 07:56
Bonjour,
Je ne vais pas être d'un grand secours sur cette macro ; je n'y connais rien.
Si ça peut t'aider, pour un tableau personnel sur excel j'avais enregistré une macro de tri avec à la fin sélection de la dernière cellule comportant une date dans la colonne A.
Après le tri j'avais sélectionné la dernière cellule tout en bas de la colonne du tableau puis j'avais fait Ctrl + flèche vers le haut pour remonter à la dernière cellule avec valeur.
voici le code qu'il en était ressorti
Je n'ai pas vérifié si c'est possible comme ça sur Google Sheets
Cordialement
Je ne vais pas être d'un grand secours sur cette macro ; je n'y connais rien.
Si ça peut t'aider, pour un tableau personnel sur excel j'avais enregistré une macro de tri avec à la fin sélection de la dernière cellule comportant une date dans la colonne A.
Après le tri j'avais sélectionné la dernière cellule tout en bas de la colonne du tableau puis j'avais fait Ctrl + flèche vers le haut pour remonter à la dernière cellule avec valeur.
voici le code qu'il en était ressorti
Sub Boutton()
ActiveSheet.Unprotect
Range("A7:R800").Sort key1:=Range("A7"), Order1:=xlAscending
ActiveWindow.SmallScroll Down:=585
Range("A800").Select
Selection.End(xlUp).Select
ActiveSheet.Protect
End Sub
Je n'ai pas vérifié si c'est possible comme ça sur Google Sheets
Cordialement
PapyLuc51
Messages postés
4423
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
19 décembre 2024
1 449
15 févr. 2020 à 10:39
15 févr. 2020 à 10:39
RE:
J'ai fait un essai sur Sheets avec les mêmes actions que ci-dessus sauf le retrait de la protection en début et la protection à la fin et voici le script qu'il en résulte
tri sur une plage A3:D100 en commençant par la colonne D, puis la colonne A ; sélection de la cellule A100 puis avec le Ctrl+flèche vers le haut pour le retour à la dernière cellule renseignée de la colonne A
En espérant que ça te serve
Cordialement
J'ai fait un essai sur Sheets avec les mêmes actions que ci-dessus sauf le retrait de la protection en début et la protection à la fin et voici le script qu'il en résulte
tri sur une plage A3:D100 en commençant par la colonne D, puis la colonne A ; sélection de la cellule A100 puis avec le Ctrl+flèche vers le haut pour le retour à la dernière cellule renseignée de la colonne A
/** @OnlyCurrentDoc */
function Trier() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A3:D100').activate()
.sort([{column: 4, ascending: true}, {column: 1, ascending: true}]);
spreadsheet.getRange('A100').activate();
spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.UP).activate();
};
En espérant que ça te serve
Cordialement
infm
Messages postés
29
Date d'inscription
jeudi 20 mars 2008
Statut
Membre
Dernière intervention
23 mars 2023
>
PapyLuc51
Messages postés
4423
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
19 décembre 2024
15 févr. 2020 à 10:41
15 févr. 2020 à 10:41
Merci pour ces propositions, je regarde dès que possible.
BM
BM