[Résolu][Calc] Exécuter automatiquement des filtres

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
lucno
Membre OOrganisé
Membre OOrganisé
Messages : 61
Inscription : 15 déc. 2009 22:16

[Résolu][Calc] Exécuter automatiquement des filtres

Message par lucno »

Bonjour,

C'est la première fois que je viens sur le forum Macro. J'ai commencé ma question sur le forum Tableur et on me demande, pour résoudre mon problème, de passer par une macro . Je me suis un peu documenté. J'ai paramétré Calc pour pouvoir enregistrer des macros, je ne sais pas si ce sera nécessaire. Je ne connais rien à ce langage de programmation. J'ai fait un peu d'initiation Basic du temps du DOS, oui, il y a quelques années !!! Mais je sais ce qu'est une boucle, des variables etc...

Ci-dessous le lien qui permet de voir le début de la discussion, enfin j'espère
https://forum.openoffice.org/fr/forum/v ... =4&t=62219

Je formate un fichier Calc (voir exemple en pièce jointe), avec un onglet Base (ce sont mes données extraites d'un logiciel), un onglet requête (critères de filtre spéciale) et des onglets qui sont le résultat de "filtre spéciale". Je veux pouvoir recopier une nouvelle base au même emplacement et qu'automatiquement toutes mes requêtes (filtre spéciale") s'exécutent. Si je dois cliquer sur un bouton ça m'ira aussi.

J'aurais besoin de quelques pistes pour pouvoir me débrouiller, quelle commande et quelle syntaxe dois-je utiliser pour
lancer la mise à jour de tous les filtres ?

Merci d'avance pour votre aide

Luc
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par lucno le 19 avr. 2020 22:37, modifié 2 fois.
LibreOffice Version:7.3.7.2 - Windows 10 (version de mon travail. Le service informatique ne veut pas changer de version)
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9258
Inscription : 28 août 2010 08:45

Re: [Calc] Exécuter automatiquement des filtres

Message par micmac »

Bonjour,
lucno a écrit :C'est la première fois que je viens sur le forum Macro
Dans ce cas il aurait fallu lire le contenu du bandeau rouge en haut de la page.

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche.
Avez-vous remarqué comment étaient postées les autres questions ?

Lisez ce fil pour savoir quelle balise utiliser : https://forum.openoffice.org/fr/forum/s ... html#27295

N'oubliez pas que les termes Macro, LibreOffice ne doivent pas être employés car il sont implicites.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même au risque de voir votre sujet verrouillé.

Merci de votre collaboration.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Calc] Exécuter automatiquement des filtres

Message par OOotremer971 »

Bonjour,

Est-ce que tu pourrais être un peu plus explicite sur ce contenu extrait de ton fichier :
Dans son fichier Lucno a écrit :Données base 1 que je remplace par base 2 et je veux que les onglets se mettent à jour automatiquement si possible, ou en cliquant sur le bouton ‘activer filtres’
Est-ce qu'il s'agit de remplacer physiquement les données du tableau1 par celles du tableau2 ou bien simplement d'utiliser les références du tableau2 à la place de celles du tableau1 pour effectuer ton filtrage ?

De mon point de vue, il n'est pas nécessaire d'utiliser une macro pour actualiser toutes les feuilles en fonction de la source de donnée choisie. Une simple formule matricielle dans chaque feuille suffit.

Et en passant, si tu pouvais aussi donner suite à cette réponse, histoire de voir comment combiner les deux éventuellement : https://forum.openoffice.org/fr/forum/v ... =4&t=62221

Merci
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
lucno
Membre OOrganisé
Membre OOrganisé
Messages : 61
Inscription : 15 déc. 2009 22:16

Re: [Calc] Exécuter automatiquement des filtres

Message par lucno »

Bonjour,
Est-ce qu'il s'agit de remplacer physiquement les données du tableau1 par celles du tableau2 ou bien simplement d'utiliser les références du tableau2 à la place de celles du tableau1 pour effectuer ton filtrage ?
Il s'agit de remplacer physiquement les données du tableau1 par celles du tableau2. En fait, il s'agit de remplacer une extraction d'un logiciel RH (base 1), par la même extraction quelques temps plus tard (base 2). Entre les 2 bases, les services RH ont travaillé et les données ont évoluées. Moi, je ne veux avoir à tout refaire à chaque extraction. C'est pourquoi, je souhaite que lorsque je copie la nouvelle base, tous les filtres se mettent à jour automatiquement.
Si il n'est pas nécessaire d'utiliser une macro, je préfère car je n'y connais rien, mais de quel type de formule matricielle veux-tu parler ?
Et en passant, si tu pouvais aussi donner suite à cette réponse, histoire de voir comment combiner les deux éventuellement : https://forum.openoffice.org/fr/forum/v ... =4&t=62221
Je ne suis pas l'auteur de cette question, c'est Luco et moi c'est Lucno :D

Merci pour votre aide

Cordialement

Luc
LibreOffice Version:7.3.7.2 - Windows 10 (version de mon travail. Le service informatique ne veut pas changer de version)
Avatar de l’utilisateur
CanadaDry
Membre hOOnoraire
Membre hOOnoraire
Messages : 171
Inscription : 25 nov. 2014 14:09
Localisation : Laval, QC

Re: [Calc] Exécuter automatiquement des filtres

Message par CanadaDry »

lucno a écrit :Si il n'est pas nécessaire d'utiliser une macro
Tabernak, je t'ai proposé Base n'est il pas ? :roll:
Surtout que tu causes de connecter à une database RH
Cela laisse confirmation que c'est la bonne piste.
OpenOffice 4.1.8 Windows 7 Edition Professional
lucno
Membre OOrganisé
Membre OOrganisé
Messages : 61
Inscription : 15 déc. 2009 22:16

Re: [Calc] Exécuter automatiquement des filtres

Message par lucno »

Bonsoir,

Ah, désolé, je n'avais pas compris qu'il s'agissait de Base , le GDBD. Dans mon entreprise : "l'administration", nous n'avons pas le droit d'utiliser Base :oops: .
Il faut donc faire autrement. En plus, je ne sais pas l'utiliser.

Merci pour ta réponse.

Cordialement

Lucno
LibreOffice Version:7.3.7.2 - Windows 10 (version de mon travail. Le service informatique ne veut pas changer de version)
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Calc] Exécuter automatiquement des filtres

Message par OOotremer971 »

lucno a écrit :quel type de formule matricielle veux-tu parler ?

Code : Tout sélectionner

=SIERREUR(INDEX(base.$B$4:$D$30;PETITE.VALEUR(SI(base.$C$4:$C$30="m";SI($base.$E$4:$E$30>20;LIGNE($A$1:$A$27)));LIGNE(A1));COLONNE(A$1));"")
C'est la même formule pour toutes les feuilles, seuls les critères >20, <=20, "m", "f" changent d'une feuille à l'autre.

La validation d'une formule matricielle se fait en maintenant les touches Ctrl+MAj enfoncées lors de l'appui sur la touche entrée. De même, pour la recopie vers le bas et vers la droite, la touche Ctrl doit-être maintenue enfoncée.

A tester
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
lucno
Membre OOrganisé
Membre OOrganisé
Messages : 61
Inscription : 15 déc. 2009 22:16

Re: [Calc] Exécuter automatiquement des filtres

Message par lucno »

Bonjour,

Si je comprends bien, il s'agit de ne pas utiliser "filtre spéciale" mais cette formule matricielle à la place. De cette façon je peux tout aussi bien créer mes onglets à l'avance, formater les formules également à l'avance. Ca me semble pas mal. Je vais essayé de comprendre la formule et je vais la tester demain. Je reviens pour vous dire si j'ai réussi à l'utiliser et si ça correspond à ,ce que je souhaite.

Merci beaucoup

Luc
LibreOffice Version:7.3.7.2 - Windows 10 (version de mon travail. Le service informatique ne veut pas changer de version)
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Calc] Exécuter automatiquement des filtres

Message par OOotremer971 »

Bonjour,
lucno a écrit :Si je comprends bien, il s'agit de ne pas utiliser "filtre spéciale" mais cette formule matricielle à la place.
Exactement. Elle se charge d'extraire de ta base les informations répondants aux critères ("m", "f" et >20 ou <=20) contenus dans la formule de chaque feuille.

A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
lucno
Membre OOrganisé
Membre OOrganisé
Messages : 61
Inscription : 15 déc. 2009 22:16

Re: [Calc] Exécuter automatiquement des filtres

Message par lucno »

Bonjour,

C'est ce que je veux faire, ça correspond à mon besoin, mais je galère pour comprendre la formule et l'adapter à mon cas. Ce que je ne comprends pas c'est ligne() et colonne(), j'ai regarder l'aide, j'ai vu que sur le forum d'autres avaient eu les même difficultés, j'ai mis les pieds au mur pour voir si ça rentrait mieux :) , mais rien à faire, je n'arrive pas à l'adapter à mon projet. Ligne() et colonne() font références à des coordonnées que je ne comprends pas, on parle de A mais moi j'ai rien dans A et il n'y a pas de A dans les lignes, seulement des n° :(

Je continue à chercher

Luc
LibreOffice Version:7.3.7.2 - Windows 10 (version de mon travail. Le service informatique ne veut pas changer de version)
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Calc] Exécuter automatiquement des filtres

Message par OOotremer971 »

Bonjour,
lucno a écrit :Ligne() et colonne() font références à des coordonnées que je ne comprends pas
Effectivement car la fonction LIGNE() retourne le numéro de ligne de l'adresse qui lui est passée en argument : =LIGNE(G20) retourne 20.

Pour bien comprendre le mécanisme, et de surcroît lorsqu"il s'agit de validation matricielle, je t'invite à mettre en pratique le petit exercice suivant. J'insiste sur la mise en pratique pour que l'assimilation soit plus facile.

Dans un premier temps, sur une feuille vierge d'un fichier vierge, tape sur la ligne 10 par exemple la formule suivante:

Code : Tout sélectionner

=LIGNE(A1:A20)
et valide en maintenant Ctrl+Maj enfoncés lors de l'appui sur la touche Entrée. Tu constateras qu'une suite numérique et générée.

Pour comprendre la formule que tu dois adapter à ton fichier, il faut maintenant que tu remplisses la colonne A (sur une dizaine de ligne) avec des OUI et des NON en les alternants à ta guise.
Dans la colonne B, tu saisis :

Code : Tout sélectionner

=SI(A1:A10="OUI";LIGNE(A1:A10);"")
et valide par Ctrl+Maj+Entrée. Tu peux saisir cette formule où tu veux sur ta feuille, le résultat sera toujours identique.
Tu viens d'obtenir le numéro de toutes les lignes qui contiennent OUI. C'est cette valeur là qui est nécessaire à la fonction INDEX() pour extraire les données des lignes répondants au critère (ici le critère est "OUI". dans ta formule c'est "f" ou "m"). La fonction PETITE.VALEUR() se charge de récupérer ces numéro de ligne les uns après les autres en incrémentant automatiquement le rang avec la fonction LIGNE(A1) pour le premier rang et ainsi de suite en étirant la formule vers le bas, A1 devient A2 et c'est donc le deuxième rang de PETITE.VALEUR() qui est passé en argument à la fonction INDEX(). Le mécanisme est le même avec COLONNE() car la fonction INDEX à besoin de 2 paramètres (ligne et colonne) pour extraire une valeur précise dans la plage de référence.

Je te laisse faire le test, puis revient avec la portion de la formule que tu ne comprends toujours pas.

A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
lucno
Membre OOrganisé
Membre OOrganisé
Messages : 61
Inscription : 15 déc. 2009 22:16

Re:[Résolu] [Calc] Exécuter automatiquement des filtres

Message par lucno »

Bonjour,

Un grand merci à Vous et à vos précieuses explications qui m'ont permises de découvrir les matrices et les autres fonctions.

La formule que vous m'avez proposée et que j'ai adaptée à mon projet était bonne. Elle renvoie la valeur "1". Alors que je croyait qu'il s'agissait d'une erreur, c'est bien la valeur de la première cellule valide. Il a suffit que je développe la formule vers la droite pour m'apercevoir que ça marche parfaitement :fou: :oops:

Merci encore

Luc
LibreOffice Version:7.3.7.2 - Windows 10 (version de mon travail. Le service informatique ne veut pas changer de version)