Problème dans une macro Le sujet est résolu

Y compris Google Docs, Slides et toute autre question en lien avec une application Google
L
Laurent_74
Jeune membre
Jeune membre
Messages : 17
Appréciation reçue : 1
Inscrit le : 7 avril 2019
Version de Calc : 6.1.5.2 Calc

Message par Laurent_74 » 7 avril 2019, 11:39

Bonjour,

Je suis entrain de créer une macro Google Sheets, voici le script
function MotsCles() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  var criteria = SpreadsheetApp.newFilterCriteria()
    .whenTextContains('CLE5')
    .build();
  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
};
C'est une macro qui utilise un filtre automatique dans la colonne A de la feuille 2 sur le mot clé CLE5.

Je souhaiterais saisir une valeur dans la feuille 1 dans la cellule H5 et filtrer automatiquement sur cette saisie de la valeur de la cellule H5

J'ai donc remplacé la ligne .whenTextContains('CLE5') par .whenTextContains('='Moteur de Recherche'!H5').
Moteur de Recherche étant ma Feuille 1

Et cela ne fonctionne pas.

Je débute en macro et là je tourne en rond depuis hier.

Quelqu'un pourrait il m'aider ?

Merci de votre support.
m
m3ellem1
Membre dévoué
Membre dévoué
Messages : 904
Appréciations reçues : 68
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 8 avril 2019, 03:24

Slt Larent et bienvenue sur le Forum,

à tester:
function MotsCles() {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Moteur de Recherche");
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  var valeurH5 = sh.getRange(5,8).getValue();
  var criteria = SpreadsheetApp.newFilterCriteria()
    .whenTextContains('valeurH5') /* sinon essaie .whenTextContains("valeurH5") */
    .build();
  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
};
L
Laurent_74
Jeune membre
Jeune membre
Messages : 17
Appréciation reçue : 1
Inscrit le : 7 avril 2019
Version de Calc : 6.1.5.2 Calc

Message par Laurent_74 » 8 avril 2019, 09:06

Merci de votre réponse, c'est très gentil mais les 2 propositions ne fonctionnent pas.
Je re-solllicite votre aide :) :)
m
m3ellem1
Membre dévoué
Membre dévoué
Messages : 904
Appréciations reçues : 68
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 8 avril 2019, 09:41

Bonjour,

Pour mieux tester:

:joindre:

@++
L
Laurent_74
Jeune membre
Jeune membre
Messages : 17
Appréciation reçue : 1
Inscrit le : 7 avril 2019
Version de Calc : 6.1.5.2 Calc

Message par Laurent_74 » 8 avril 2019, 10:11

Bonjour,

voici le fichier Google Sheets 'Finalisation Macro'
Et les 3 macros déjà créées....

Merci encore pour votre aide
Finalisation Macro.xlsx
(51.13 Kio) Téléchargé 7 fois
m
m3ellem1
Membre dévoué
Membre dévoué
Messages : 904
Appréciations reçues : 68
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 8 avril 2019, 11:01

Re,

je viens de tester et ca marche, essaie comme ca
function MotsCles() { 
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Moteur de Recherche");
  var valeurH5 = sh.getRange(5,8).getValue();
  var criteria = SpreadsheetApp.newFilterCriteria()
    .whenTextContains(valeurH5)
    .build();
  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria)   
};
Bonne journée
L
Laurent_74
Jeune membre
Jeune membre
Messages : 17
Appréciation reçue : 1
Inscrit le : 7 avril 2019
Version de Calc : 6.1.5.2 Calc

Message par Laurent_74 » 8 avril 2019, 11:47

Merci c'est génial, cela fonctionne en effet.
Peux-tu m'expliquer car je ne suis qu'au début de la construction de la macro et pour bien fonctionner, j'ai besoin de comprendre ce que je fais ?
Merci encore
m
m3ellem1
Membre dévoué
Membre dévoué
Messages : 904
Appréciations reçues : 68
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 8 avril 2019, 12:26

oui bien sûr sans souci:

1- on defini/declare dans la variable sh la fueille voulue ici "Moteur de Recherche"
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Moteur de Recherche");
2- on defini/declare dnas la variable valeurH5 la céllule voulue ici H5 qui a les coordonnées 5 (ligne) et 8 (colonne)
var valeurH5 = sh.getRange(5,8).getValue();
3- et on récupère le contenu de notre variable valeurH5 qui contient le contenu de la céllule H5
.whenTextContains('valeurH5')
à la prochaine
L
Laurent_74
Jeune membre
Jeune membre
Messages : 17
Appréciation reçue : 1
Inscrit le : 7 avril 2019
Version de Calc : 6.1.5.2 Calc

Message par Laurent_74 » 9 avril 2019, 08:38

Merci,
tu as été au top
Très très sympa.
A la prochaine
1 membre du forum aime ce message.
L
Laurent_74
Jeune membre
Jeune membre
Messages : 17
Appréciation reçue : 1
Inscrit le : 7 avril 2019
Version de Calc : 6.1.5.2 Calc

Message par Laurent_74 » 11 avril 2019, 11:45

Hello,

je reviens vers toi car je souhaite maintenant Créer une Macro 'Automatisation Mots Cles'
1) Sur Feuille 'Base de Donnees' Lancer macro Annulation Filtre
2) Sur Feuille 'Moteur de Recherche' Rentrer Choix 1 dans cellule H5
3) Sur Feuille 'Base de Donnees' Lancer Macro 'Mot Cles'
4) Copier le résultat de la Feuille 'Base de Donnees' dans la Feuille 'Résultat' en maintenant Colonne B, C, D ,E soit
(Numéro Série SN, Libellé SN, Texte de Saisie, Source) toute en mettant la ligne 1 en Gras

J'ai créé ce script
function AutomatisationMotsCles() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A1').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Base de Donnees'), true);
AnnulationFiltre();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Moteur de Recherche'), true);
spreadsheet.getRange('H5').activate();
spreadsheet.getCurrentCell().setValue('CLE5');
spreadsheet.getRange('H6').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Base de Donnees'), true);
MotsCles();
spreadsheet.getRange('B:E').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Résultat'), true);
spreadsheet.getRange('\'Base de Donnees\'!B:E').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveRangeList().setFontWeight('bold');
};

Je souhaiterai Saisir n'importe quelle autre valeur que CLE5 en H5 Sur la Feuille 'Moteur de Recherche' et pour l'instant je sèche
As-tu une idée ?
Je t'envoie le fichier en Pièce jointe.

Merci pour tout
Finalisation Macro.xlsx
(62.74 Kio) Téléchargé 3 fois
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message