filtre auto sous macro ?

J

jack

Guest
bonjour
Je voudrais par un UF pouvoir sélectionner des semaines précises par ex : semaine 5 6 7 8 et 9
et par la macro qui en découle ne faire afficher à l'écran que les lignes concernées ( dans l'idée d'un filtre automatique )
pour pouvoir saisir sur les semaines concernées des valeurs dans les colonnes D et E et que cela se fasse sur toutes les feuilles concernées en même temps ( 3 dans l'exemple mais il y en aura 14 plus tard) c'est à dire si je sélectionne semaine 5 6 7 8 et 9 je ne dois voir que ces semaines là d'afficher sur toutes les feuilles pour que je n'ai plus qu'à saisir mes données et faire une impression par la suite

il faudrait par ailleurs une macro pour afficher tous les tableaux en entier sur toutes les feuilles en même temps

merci de votre aide

slts jack
 
J

jack

Guest
voici la pièece jointe pour plus de clareté
slts
jack [file name=SUIVIMOD.zip size=4397]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/SUIVIMOD.zip[/file]
 

Pièces jointes

  • SUIVIMOD.zip
    4.3 KB · Affichages: 28

_Thierry

XLDnaute Barbatruc
Repose en paix
bonjour Jack, le Forum

Tu veux quelque chose d'assez compliquer à réaliser. En plus tu ne donnes pas assez de détails sur la structure de tes feuilles. (C'est très important, si tu as un fichier exemple sans données confidentielles)

Tout ce que je peux déjà annoncer c'est que ça va ressembler aux algos que j'ai produit dans ce fil de discussion : Ce lien n'existe plus

Et par conséquent il serait aussi souhaitable de savoir si tu as des bases de connaissances en VBA.

Bon Appétit
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
=> DEMO UserFormAutoFilter VBA and Much More ! LOL

Bon alors Jack, le Forum

Voici ce que j'ai compris ! Sacré Schmilblick tout de Même !

Mais cette Démo devrait faire toutr ce que tu souhaites. Si tu respecte scrupulueuse la structure des Feuilles comme dans ton exemple...

Bonne Découverte et Après Midi

@+Thierry [file name=USF_MultiSheets_Manager_UpDater.zip size=24435]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_MultiSheets_Manager_UpDater.zip[/file]
 

Pièces jointes

  • USF_MultiSheets_Manager_UpDater.zip
    23.9 KB · Affichages: 50
J

jack

Guest
Re:=> DEMO UserFormAutoFilter VBA and Much More ! LOL

bonjour thierry et au forum

Thierry comme toujours une superbe programmation mais je ne suis pas bien exprimé
l'idée n'est pas de faire un récap de toutes les données et de toutes les feuilles
A partir d'un uf il me faut pouvoir sélectionner des semaines par exemple semaine 1 et semaine 2 et semaine 3 et semaine 4 et semaine 5 . ensuite par cette sélection sur chaque page cas 1 cas 2 cas 3 les semaines non concernées doivent être masquées
par la suite je saisis les données en réalisé et en écart pour chaque cas puis je fais une impression de chaque cas avec le nom prénom et semaine 1 2 3 4 5

Et il me faut un autre bouton pour afficher toutes les semaines

je dois en fait saisir des données concernant chaque employé avec uniquement les semaines concernées , imprimer ces données et pouvoir consulter toutes les données si besoin est

mon tableau me sert à la fois de saisie et de tableau de suivi

je veux éviter de devoir masquer les lignes sur chaque cas un par un
ou alors ne faut il pas traiter le problème différemment à savoir
par un uf me questionner sur les semaines que je veux conserver pour l'impression et a la fin de l'impression remettre toutes les lignes visibles et ce pour toutes les feuilles en même temps

j'espère avoir été plus clair dans mes explications

en tout cas merci pour l'aide déjà apportée
slts
jackl
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:=> DEMO UserFormAutoFilter VBA and Much More ! LOL

Re Bonjour Jack, le Forum

Et oui probablement mal exprimé...

En fait le UserForm que j'ai inventé pour toi fait tout de même les grands traits de ce que tu décris dans ton dernier message en ce qui concerne :

1) Permettre la Sélection d'une ou de Plusieurs Semaines (la ListBox 1 est MultiSelect)

2) Une fois cette Sélection faite, l'algo va filtrer sur tout le classeur les données contenant la ou les semaines voulues et ne faire aparaître en ListBox2 uniquement les semaines concernées qui donc sont en provenance de toutes les Feuilles du Classeur...

3) Dans cette ListBox2, en cliquant sur un des Items ainsi filtré, tu peux mettre à jour les Champs 'réalisé' et 'écart' en temps rééls sur la Feuille concernée...

4) Regrouper sur une Seule Feuille ('Recap') toutes les Feuilles en fonction de la Semaine Choisie... Qui pourra donc être Imprimée...

Maintenant ce qu'il semble manquer c'est quoi au juste ?, faire l'impression pour chaque cas ? par semaine choisie ? ce ne serait pas trop difficile, mais il faut savoir exatement avant...

Par contre je ne comprends pas 'l'idée n'est pas de faire un récap de toutes les données et de toutes les feuilles'

Pour faire une récapitulation de Toute les Feuilles en Une, le UserForm ne tolère la manip 2) (Validate Week Selection) si tu n'as pas fait de sélection dans la Manip 1) (Select Week(s)) en premier, ce qui est normal.

Par contre si tu choisis une semaine, tu n'auras qu'une semaine en feuille 'Recap' c'est seulement si tu sélectionnes les 53 semaines que tu auras alors toutes les données de toutes les Feuilles dans la Feuille 'Recap'....

Donc là quelque chose m'échappe ou peut-être n'as tu pas approndie les possibilités ouvertes par ce UserForm...

Dans l'attente de savoir ce qui manque exactement...

Bonne Soirée
@+Thierry
 
J

JACK

Guest
Re:=> DEMO UserFormAutoFilter VBA and Much More ! LOL

bonsoir thierry

merci pour la démo et pour les explications
j'avais vu les possibilités magnifiques que tu as mis en place mais ma requête est un peu différente
je vais tenter de tout mettre au clair

1) je veux pouvoir masquer en une seule fois toutes les mêmes lignes sur toutes les pages pour n'avoir à l'écran que les semaines qui m'intéressent par exemple semaine 1 2 et 3

2) je vais saisir pour chaque cas les données les oncernant 'réalisé et écart' en cliquant sur chaque onglet les uns après les autres

3 ) imprimer chaque cas dans cette configuration

4) apres impression je veux pouvoir afficher toutes les semaines

ex cas 1 nom prenom

réalisés écart
semaine 1 30 2
semaine 2 30 -2.5
semaine 3 35 -1.5

idem cas 2
idem cas 3

je ne veux avoir à l'écran que cette sélection pour saisir mes données les imprimer puis après impression avoir les tableaux complets de la semaine 1 a la 53 qui s'affichent

j'espère avoir plus clair il faut savoir que ce dossier sera utilisé par plusieurs personnes et elles ne connaissent rien a vba et ne se servent d'excel que pour saisir des chiffres. je ne veux surtout pas leur compliquer la vie

Merci beaucoup pour ta démo que je vais certainement utiliser pour d'autres applications personnelles

slts

jack
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:=> DEMO UserFormAutoFilter VBA and Much More ! LOL

Re Bonsoir Jack

Rapidos car je vais pas tarder pour l'apéro là !!! lol

Quand tu dis 'à l'écran' tu entends quioi exactement ? Car pour être 'à l'écran' c'est 'à l'écran'...

Ce que j'ai l'impression maintenant c'est que tu ne veux pas Travailler par l'intermédiare d'un UserForm... Mais tu veux travailler directement sur les WorkSheets...

Pourtant la première ligne de ton premier Post 'Je voudrais par un UF pouvoir sélectionner des semaines précises par ex : semaine 5 6 7 8 et 9 et par la macro qui en découle ne faire afficher à l'écran que les lignes concernées'...

A partir de là j'ai compris à l'écran => dans le UserForm !!!

Arf dommage, mais c'est un bon exercice en tout cas ;) !

Pour le faire sur des onglets c'est relativement simple, il suffit d'utiliser la Méthode 'WS.Rows(x).Hidden = True' en bouclant feuille à feuilles comme dans 'TheCollector' mais en bouclant sur les Plages pour savoir si la cellule 'A' x contient ou non le numéro de semaine... Par contre il te faudra une boucle 'For Each Cell in Plage' et plus en tableau, ce qui sera plus long en exécution of course.

Un truc comme ça :

Sub HideRow()
Dim PlageToScan As Range, Cell As Range
Dim WeekValue As Byte
Dim Week As Byte

Week = InputBox('State a number')

For Each WS In ThisWorkbook.Worksheets
If WS.Name <> 'Interface' And WS.Name <> 'Recap' Then
Set PlageToScan = WS.Range('A7:A' & WS.Range('A100').End(xlUp).Row)

&nbsp; &nbsp;
For Each Cell In PlageToScan
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
If Len(Cell) = 9 Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WeekValue = Right(Cell, 1)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WeekValue = Right(Cell, 2)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
If WeekValue <> Week Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WS.Rows(Cell.Row).Hidden =
True
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
Next Cell
End If
Next WS


End Sub


Bonne Soirée
@+Thierry

PS pour démasquer => Rows.Hidden = False (En Boucle sur les Sheets comme avant)
 
J

JACK

Guest
Re:=> DEMO UserFormAutoFilter VBA and Much More ! LOL

Bonsoir thierry et le forum
Deux très beaux exercices de ta part
J'ai changer en cours de route pour pouvoir simplifier le dossier pour les autres personnes qui l'utiliseront Elles sont réfractaires à l'informatique mais elles savent l'apprécier quand il peut leur apporter une sérénité dans leur travail

Cela étant dis ta formule fonctionne à merveille pour une semaine mais je voudrais pouvoir en sélectionner plusieurs. C'est pour cela que j'avais pensé passé par un uf

Pour l'impression de chaque onglet je saurais le faire mais pas pour de nouveau afficher toutes les lignes sur toutes les feuilles à la suite de l'impression
Pour répondre ' à l'écran ' je voulais dire que sur les feuilles ne soient présentes que les semaines concernées et par conséquent que soit masquées les lignes non concernées (merci La palisse) comme tu l'a fait dans la deuxième démo
Bon apéro et merci pour tout

slts
jack
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:=> DEMO UserFormAutoFilter VBA and Much More ! LOL

Bonsoir Jack

Rapidos, avant dodo !

Et bien pour le UserForm en Multi Semaines tu as absolument tous les élément dans la Démos non ?

Au lieu de lancer TheCollector tu dois juste comprendre et adapter le code ci desssus ...

Bonne Nuit
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 347
Messages
2 087 500
Membres
103 563
dernier inscrit
samyezzehar