Macro 'Automatisation Mots Cles

Bonjour à tous,

je reviens vers vous 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) Dans la Feuille 'Résultat', je veux effacer toutes les données

5) 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

Avez-vous une idée ?

Jevous envoie le fichier en Pièce jointe.

Merci pour tout

PS : Surtout n'hésitez pas à remettre en cause ma vision de la macro si vous trouvez que je la complexifie trop. Donnez moi votre avis SVP.

Merci

Slt Laurent,

essaie comme ca:

function AutomatisationMotsCles() {
  var Twb=SpreadsheetApp.getActiveSpreadsheet();

  var x = Twb.getSheetByName('Moteur de Recherche');
  var y = Twb.getSheetByName('Base de Donnees');
  var z = Twb.getSheetByName('Résultat');

  var valeurH5 = x.getRange(5,8).getValue();
  var criteria = SpreadsheetApp.newFilterCriteria()
    .whenTextContains(valeurH5)
    .build();
  y.getFilter().setColumnFilterCriteria(1, criteria)

  y.getRange('B:E').copyTo(z.getRange('A1'), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  z.getRange("A1:D1").activate();
  z.getActiveRangeList().setFontWeight('bold'); 
};

Salut,

c'est génial, tu es un vrai chef.

Par contre je suis frustré, je n'ai rien compris ou presque.

1) Peux-tu m'expliquer ta construction ?

2) Mon approche était elle pourrie ?

3) Est il possible de mettre un bouton sur la feuille 'Moteur de Recherche' en I5 qui lorsque l'on clique dessus déclenche la Macro AutomatisationMotsCles() ?

Merci pour tout. Tu m'enlèves une énorme épine du pied.

D'après toi, quelle est la meilleure manière de se former à la construction de macro sous Sheets, Calc, Excel ?

Merci pour tout.

J'attends tes réponses avec impatience

Salut Laurent,

1) Peux-tu m'expliquer ta construction ?

c'est la même salade qu'on avait fait avant sauf qu'on a ajouté le copier/coller et le formattage

y.getRange('B:E').copyTo(z.getRange('A1'), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
z.getRange("A1:D1").activate();
z.getActiveRangeList().setFontWeight('bold');

2) Mon approche était elle pourrie ?

elle est bien (puisque c'est une macro enregistrée)

3) Est il possible de mettre un bouton sur la feuille 'Moteur de Recherche' en I5 qui lorsque l'on clique dessus déclenche la Macro AutomatisationMotsCles() ?

oui

1- Insertion ==> Dessin ==> Formes ==> Boutton de droite ==> modifier le Texte (inserer un texte) ==> Enregistrer et fermer

2- un clique gauche sur le boutton et tu cliques sur les 3 points ==> Attribuer un script

3- dans la boite Assigner le Script insére: AutomatisationMotsCles ==> ok

4- lancer la macro en cliquant sur le boutton

->demande autorisation

->revoir permission

->choisir le compte autorisé

message cette application n'est pas validée

->paramètres avancés

->accéder à mon projet (non sécurisé)

->autoriser

D'après toi, quelle est la meilleure manière de se former à la construction de macro sous Sheets, Calc, Excel ?

Perso j'ai lû les cours gratuits du forum (en haut t'as les liens: Cours Excel, Cours VBA, Cours VBA Avancé). Mais il faut aller doucement et surtout lire les différents sujets du forum.

Bonne chance et à la prochaine

Salut,

c'est vraiment très gentil de m'avoir aidé.

Merci aussi pour ce super Forum.

A très bientôt

Salut,

j'ai dû modifié ta macro pour pouvoir enchaîner différentes recherches.

Elle fonctionne parfaitement sauf que je vois tous les steps de déroulement de la macro.

A quoi s'est dû, peut-on gommer ce défaut ?

Merci pour tout.

function AutomatisationMotsCles() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Base de Donnees'), true);
  AnnulationFiltre();

  var Twb=SpreadsheetApp.getActiveSpreadsheet();

  var x = Twb.getSheetByName('Moteur de Recherche');
  var y = Twb.getSheetByName('Base de Donnees');
  var z = Twb.getSheetByName('Résultat');

  var valeurH5 = x.getRange(5,8).getValue();
  var criteria = SpreadsheetApp.newFilterCriteria()
    .whenTextContains(valeurH5)
    .build();
  y.getFilter().setColumnFilterCriteria(1, criteria)

  y.getRange('B:E').copyTo(z.getRange('A1'), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  z.getRange("A1:D1").activate();
  z.getActiveRangeList().setFontWeight('bold'); 
};

Slt Laurent,

je ne pense pas que l'équivalent du “ScreenUpdating” existe

Merci mais ce que je souhaite c'est de ne pas perdre en fluidité....

Pourquoi la macro remaniée n'est elle pas aussi fluide?

As tu une idée ?

Merci

Effectivement l'équivalent de ScreenUpdating n'existe pas dans Google Sheets ... comme beaucoup d'autres choses ...

Si tu as besoin d'optimiser ton code ... tu peux jeter un oeil sur ce lien :

https://developers.google.com/apps-script/guides/support/best-practices

En espèrant que cela t'aide ...

Je te remercie de ton aide

Je te remercie de ton aide

You are welcome ...

Rechercher des sujets similaires à "macro automatisation mots cles"