Formatage conditionnel alterné de table filtrée

Bonjour,

Avec le formatage conditionnel, on peut colorer alternativement une ligne en fond gris puis une en fond blanc, avec une condition
SI(EST.IMPAIR(LIGNE(A1));1;0)

Mais quand c'est une une table filtrée, les lignes masquées dépendent du contenu, donc le formatage alterné devient un peu n'importe quoi...

Y aurait-il une méthode pour un formatage conditionnel applicable aux lignes visibles seulement ?

Merci

AH oui mais ça c'est avec un autofiltre...
Claire va me dire qu'avec le "Filtre spécial" et l'option "Copier le résultat vers...", ça va tout seul.

Bon, sachant que j'ai 6 filtres avec la même source, il faudrait que je fasse 6 copies de ma source, en plus de mes 6 cibles...

Donc s'il y avait vraiment une méthode applicable sur les lignes visibles...

Bonsoir,

Après un rapide coup d’œil, je ne pense pas que ce soit faisable.. Mais je ne sais pas tout.
Ce que je ne comprends pas c'est pourquoi il faudrait 6 copies de la source ! Il faut faut 6 zones de critère différentes mais pourquoi 6 sources identiques ?

Au passage, il y a plus simple pour alterner les couleur de ligne, le SI est inutile.

Il reste bien sûr les macros.. ! Ce n'est pas une obscénité ! Si une centaine d'heures d'apprentissage (une formation standard durent environ 70 heures pour maîtriser les bases) économisent des heures de manipulation toute les semaines ou même tous les jours, je pense que ça vaut la peine.
Surtout si la macro enchaîne automatiquement les filtres spéciaux et le format conditionnel, une dizaine de lignes devraient suffire.

Oui, je ne fais pas vraiment avancer le schmilblick . C'était juste pour me changer les idées du boulot.  Si le problème est toujours d'actualité en janvier, je me ferai un plaisir de faire la macro

M'enfin, bon courage. Et bonnes fêtes de fin d'année

Christian F

Hep hep hep j'ai rien dit :rofl:
Mais bonjour

D'abord perso j'évite le copier le résultat vers. Dans le cas que tu evoquais si tu n'avais qu'une seule vue, ça s.y pretait, mais au final c'est pas ce qui a été utilisé. Juste le filtre spécial. Sachant qu'une fois le collage avec liaison fait, n'importe quel filtre devait fonctionner mais plus ou moins directement. ..

Bref, la fonction s'applique sur chaque ligne et la formatage conditionnel ne tient pas compte de l'affichage... Donc ca paraît difficile.

Il faut tourner le problème pour avoir une solution mais ça peut-être un peu... Trop !
Quelques pistes (non testées):
Ajouter la condition du filtre dans le formatage (ça ne suffira jamais)
Tester les valeurs précédentes et suivantes
Exploiter les possibilités de la version 7.2 de faire un filtre sur couleur...

=> On se rapproche du comportement algorithmique... donc macro (l'usage d'une boucle pour balayer les lignes -visibles- et definir un comportement selon la valeur des lignes -visibles- apparaît plus judicieux si te l'usage d'une fonction alambiquée.

Tu nous tiens au courant ?

Bon courage

⁣Claire​

Pour ta question initiale, je viens de répondre.

Si a propos de ta question de la semaine dernière tu as copié 6 fois la source et crée 6 feuille cibles (soit 12 feuilles) c'est délirant et inutile

La solution finale que je te proposais n'utilisais pas "copier le résultat vers".

Puisque tu avais x vues a créer (donc x=6), tu devais créer une feuille par vue (jusque là ça paraît raisonnable).
Sur chacune de ces feuilles tu appliques le filtre nécessaire. Soit 7 feuilles au total. La feuille source ne fait plus directement l'objet d'un filtre. C'est bien ta source unique.  Elle reste intacte, et permet uniquement de modifier les valeurs... C'est dans la feuille de chaque vue que tu filtres.

⁣Claire​

Ouille

Je crois qu'on s'est emberlificoté les pédales !!

J'ai lu copier le résultat vers et compris lier avec la source.
Tu nous renvoies l'état de ton fichier histoire qu'on reparte sur un truc correct ??

Non pas de "copier le résultat vers" sur le filtre spécial. Pas nécessaire.

Et surtout quel que soit ton filtre pas de lien vers la source. Juste un copier coller avec liaison de la source vers chacune des vues.
Le collage avec liaison est une option du collage spécial. (Avant le filtre, pour initialiser ta feuille)

⁣Claire​

Salut Christian
J'ai pas d'opposition systématique aux macros mais j'estime que ce n'est pas la solution a tout.
Tout le monde n'est pas en mesure de suivre une formation de 70 ou 100h (2 semaines et demi de travail a temps plein, 3 semaines et demi de formation, la journée de formation étant plus souvent calibrée sur 6h)

Bien sûr perdre du temps (en formation) c'est en gagner par la suite.
Mais n'oublie pas que même si on sait exploiter Calc et ses fonctions on n'a pas forcément l'appétence pour décrire un comportement algorithmique.
D'ailleurs si je devais envisager 3 semaines de formations je les consacrerais plutôt à Python par exemple. Et si j'avais un reel comportement algorithmique a decrire, je sortirais de ma suite bureautique préférée pour écrire des scripts Python ou autre..

Bref, les macros c'est utile mais en 1ere intention ça n'est pas une solution universelle.
Quand on crée un fichier que pour soi, on se pose moins la question. Quand le fichier sera exploité par d'autres il faut
Veiller a la sécurité associée aux macros
Veiller qu'il restera maintenable.

Et le dernier critère est très pénalisant quand il est plus facile d'expliquer telle ou telle fonctionnalité de ta suite bureautique plus qu'un algorithme a quelqu'un qui a l'impression de lire.... Du langage extraterrestre.
Le jour où le fichier inmaintenable a une importance stratégique pour ta boîte où ton administration...

Nos expériences à tous influencent nos reponses... Logique

Bonne journée du bon courage pour le boulot
⁣Claire​

Bonsoir,

Bon, j'ai un fichier assez propre.

Donc ma première feuille est la source principale, colonnes A à F à (dé)cocher.

Ensuite, j'ai fait des copies de la source par formules matricielles (sur 300 lignes) vers les feuilles "U61 Contrat A" à "U61 Contrat F".

Sur chacune des 6 copies, j'ai défini la plage de données, puis appliqué un filtre standard, respectivement :
- "A" = x
- "B" = x
- "C" = x
- "D" = x
- "E" = x
- "F" = x

Ainsi, les tâches affectées à chaque candidat par des croix dans le tableau source se retrouvent dans les "Contrats individuels" de chacun.

Le souci c'est qu'il faut que je passe dans les 6 feuilles pour "Actualiser la plage de données".
Dommage qu'il n'y ait pas une commande "Actualiser toutes les plages de données du classeur".
Donc macro pour ça.

Pour l'édition, on sélectionnera 1 à 6 feuilles de contrats, et zou pour l'export PDF.

Mon fichier :
https://www.cjoint.com/c/KLmwzOZOwoT

Pour l'alternance des lignes grisées, je laisse tomber, c'était pour améliorer la lisibilité, mais pas grave.

Quant aux macros, j'y ai déjà touché, mais j'évite ici (sauf Actualiser toutes les plages), car j'ai le doux souhait que mon document (à partager) soit utilisable sur "d'autres plateformes bureautiques", au cas où l'on oserait m'opposer cet argument dans mon administration.

Merci

Que voici, affectée à un Ctrl+Alt+F :

Option Explicit

Sub UpdateDataRanges()
  Dim loEnum, loRange

  loEnum = ThisComponent.DatabaseRanges.CreateEnumeration
  While loEnum.HasMoreElements
    loRange = loEnum.NextElement
    loRange.refresh()
  Wend
End Sub

Bonjour Stéphane,

A tester, mais il me semble que l'affectation des raccourcis est propre à
la machine sur laquelle tu es.
Si c'est bien le cas, il serait préférable de créer un bouton affecté à la
macro sur ta feuille.

Yves

Bonjour,

A tester, mais il me semble que l'affectation des raccourcis est propre à la machine sur laquelle tu es.

OK, merci pour l'info.

Si c'est bien le cas, il serait préférable de créer un bouton affecté à la macro sur ta feuille.

Oui c'est vrai, et ce sera plus intuitif à trouver...

Merci

Bonjour

Je n'ai pas libreoffice sous la main a la minute mais il me semble que tu peux choisir l'étendue de ton raccourci.
Reste que oui un bouton c'est plus lisible.

Du coup tu as ton résultat final ou tu as une question en suspend ?

⁣Claire​

Je n'ai pas libreoffice sous la main a la minute mais il me semble que tu peux choisir l'étendue de ton raccourci.
Reste que oui un bouton c'est plus lisible.

OK :slight_smile:

Du coup tu as ton résultat final ou tu as une question en suspend ?

Ben pour ce fil j'ai laissé tomber le formatage conditionnel alterné sur table filtrée.

Bonsoir,

UN BON LAPIN N'ABANDONNE JAMAIS !

Avec le formatage conditionnel, on peut colorer alternativement une ligne en fond gris puis une en fond blanc, avec une condition
SI(EST.IMPAIR(LIGNE(A1));1;0)

Mais quand c'est une une table filtrée, les lignes masquées dépendent du contenu, donc le formatage alterné devient un peu n'importe quoi...

Y aurait-il une méthode pour un formatage conditionnel applicable aux lignes visibles seulement ?

J'ai trouvé !! :smiley:

pour une zone A1:J300 , la formule est :

SI(EST.PAIR(SOUS.TOTAL(3;$A$1:$A1));1;0)

Youhouuuu !!!

Extra
Bravooooooo
Tu viens de grimper de 10 niveaux

⁣Claire​