Tableau de données, tri depuis une autre feuille

Murmandamus

XLDnaute Nouveau
Bonjour,

Je viens à vous parce que j'ai une question sur une possible fonctionnalité d'Excel.

Dans le cadre de mes études, je dois optimiser un fichier Excel qui comporte dans l'état actuel plus de 850 lignes, une 30aine de lignes (et avec certaines cases tellement pleines de texte qu'elles prennent tout l'écran).

Je dois dans un premier temps mettre en place des tris pertinents sur ces données pour en faciliter l'accès.

Dans l'idéal, je voudrais faire une page d'accueil où seraient disponibles les options de tris.

Je voulais donc savoir s'il était possible de faire en sorte que le tableau de données soit trié automatiquement en fonction des choix faits sur la page d'accueil.

C'est faisable manuellement via les en-têtes du tableau de données, mais j'aurais aimé mettre cette fonctionnalité sur la page d'accueil et l'automatiser, parce que je vais avoir par la suite d'autres options qui se rajouteront (outils statistiques, graphiques etc) et que donc j'avais envie de faire une page qui centralise un peu le tout.

Je vous joins un fichier bidon qui reprend un peu l'essentiel de la structure de mon fichier.


J'avais pensé faire un tri en VBA pour n'afficher que les résultats voulus sur la page d'accueil (bien présentés, regroupés par catégories etc), mais ca me fait visiter tout le tableau au moins une fois (si ce n'est plus), donc ce n'est peut être pas le plus efficace (et c'est un peu long à coder quand on commence en VBA alors si Excel peut me le faire... ^^)

Merci d'avance :)
 

Pièces jointes

  • test.xlsx
    11.9 KB · Affichages: 66
  • test.xlsx
    11.9 KB · Affichages: 64
  • test.xlsx
    11.9 KB · Affichages: 68

DoubleZero

XLDnaute Barbatruc
Re : Tableau de données, tri depuis une autre feuille

Bonjour à toutes et à tous,

Bienvenue sur XLD, Murmandamus !

Une suggestion en pièce jointe.

A bientôt :)
 

Pièces jointes

  • 00 - Murmandamus - Qui, quand, quoi...xlsm
    35.7 KB · Affichages: 64
  • 00 - Murmandamus - Qui, quand, quoi...xlsm
    35.7 KB · Affichages: 62
  • 00 - Murmandamus - Qui, quand, quoi...xlsm
    35.7 KB · Affichages: 59

Murmandamus

XLDnaute Nouveau
Re : Tableau de données, tri depuis une autre feuille

Wow, rapide et efficace ! Je ne pensais que cela pouvait se faire aussi facilement au niveau du code...


J'aurais juste troi questions dans un premier temps :

- Sur le code : Est-il possible de ne copier que certaines colonnes du tableau de données ?

La, sur l'exemple donné, le tableau est facilement lisible. Dans le fichier sur lequel je travaille, y'a 30 colonnes, et toutes ne sont pas intéressantes à mettre sur la page d'accueil.

La page d'accueil est prévue pour donner une vue plus synthétique du tableau, et permettre de se repérer plus facilement (les utilisateurs doivent remplir quelques colonnes sur chaque ligne, pour justifier de leur conformité aux exigences réglementaires listées par le fichier, ce qui est difficilement réalisable quand il faut circuler dans les 875 lignes pour trouver les 10 qui les concernent réellement).

Un peu plus anecdotique : Serait-il envisageable de faire en sorte qu'en bout de chaque ligne il y ait un lien qui amène à la ligne du tableau de données correspondante ? (histoire d'aller facilement à l'endroit où l'on doit modifier les données). Ou sinon, une manière d'indiquer au moins à quelle ligne se situe les données listées ? (s'il faut modifier la structure du tableau, rajouter une colonne etc, c'est pas un souci).

- Sur les fonctionnalités d'Excel :

Dans les faits, sur la page d'accueil, je fais un tri sur des trigrammes (qui font référence aux divers équipements concernés par la réglementation étudiée). Or, dans le tableau de données, une exigence concerne en général plusieurs équipements. La colonne Equipements contient donc une liste des différents trigrammes concernés.

J'ai testé sur le fichier, le tri renvoie le bon résultat si je filtre sur le premier élément de la liste, mais pas s'il est situé ailleurs. Y a-t-il moyen de régler ce souci ?


S'il n'y a pas de solution Excel rapide et astucieuse, j'en reviendrais à boucler sur tout mon tableau pour en tirer tous les éléments nécessaires. Bourrin, mais je sais que ca peut se faire et que je devrais y arriver ;)


Merci encore en tout cas pour l'attention apportée, et pour l'accueil :)
 

DoubleZero

XLDnaute Barbatruc
Re : Tableau de données, tri depuis une autre feuille

Bonjour, Murmandamus, le Forum,

Une nouvelle suggestion en pièce jointe.

Pour ce qui concerne ceci :

y'a 30 colonnes, et toutes ne sont pas intéressantes à mettre sur la page d'accueil.

Merci de bien vouloir :

- fournir le véritable fichier de travail, dépourvu de donnée confidentielle ;
- préciser quelles sont les colonnes "intéressantes".

A bientôt :)
 

Pièces jointes

  • 00 - Murmandamus - Qui, quand, quoi... V2.xls
    82 KB · Affichages: 54
  • 00 - Murmandamus - Qui, quand, quoi... V2.xls
    82 KB · Affichages: 54
  • 00 - Murmandamus - Qui, quand, quoi... V2.xls
    82 KB · Affichages: 56
Dernière édition:

Murmandamus

XLDnaute Nouveau
Re : Tableau de données, tri depuis une autre feuille

Voici la structure du fichier sur lequel je travaille.

J'ai retiré les cases avec les remarques internes de la boite de mon client, mais pour info toutes les colonnes "Remarques Veilleur" et "Remarques métier" contiennent normalemnt des blocs de texte qui remplissent au max les cases (d'après ce que m'ont dit mes clients c'est 512 caractères non ?), donc ca rend difficile la lecture.


Les colonnes que je voulais mettre en page d'accueil sont :

- Thème exigence
- Intitulé
- Article

Ce sont les colonnes nécessaires pour bien repérer les différentes exigences réglementaires.

Le tri que je voulais faire est sur les colonnes :

- Equipement concerné
- Theme exigence
- Intitulé


Sur les colonnes Equipement concerné et Thème exigence, on voit des listes (plusieurs trigrammes, plusieurs thèmes) séparées par des ";" .

J'ai réessayé avec la version que tu as fourni, mais en mettant, par exemple, un deuxième vendeur sur une ligne (du type "Louis;Martin"). Lorsque je fais un tri sur Louis, la ligne apparait, mais pas si je fais un tri sur Martin.

Merci en tout cas de cette nouvelle version. Si tu as d'autres questions, n'hésite pas.
 

Pièces jointes

  • structure test.xlsx
    23.8 KB · Affichages: 41

DoubleZero

XLDnaute Barbatruc
Re : Tableau de données, tri depuis une autre feuille

Re-bonjour,

Saperlipopette :eek: !

Nous voici, à présent, bien loin :rolleyes: de la demande initiale.


Comme je l’écris souvent : mieux vaut déposer en # 1 le véritable fichier de travail, tout en expliquant clairement le besoin.

Afin que nul ne perde davantage son temps, pourrait-on voir, en onglet "Sommaire", un exemple de résultat espéré, car, présentement, je ne sais comment faire :confused:... A moins qu'un membre expert :eek: ne vienne à notre secours !

A bientôt
:)
 

Murmandamus

XLDnaute Nouveau
Re : Tableau de données, tri depuis une autre feuille

Je ne demande pas forcément une solution toute faite, juste à savoir s'il existe des possibilités pour répondre à mes besoin qui soient plus astucieuses et plus efficaces que de passer en revue tout le tableau de données et de comparer chaque ligne avec les options de tri pour voir si elle correspond ou si on passe à la suivante.

Ca je devrais pouvoir le faire, j'ai déjà codé dans d'autres langages, ce n'est qu'un problème d'adaptation de syntaxe après.

Donc, même si ce n'est qu'une piste, que la rédaction du code est laborieuse, c'est pas grave, je prends et je pourrais toujours essayer de me débrouiller après avec le code (quitte à revenir demander des conseils sur des points particuliers ^^).

Je sais que ce que je demande a un peu évolué, je voulais juste savoir si ce que je demande est faisable (après si tu sais le faire rapidement et que ca ne te dérange pas trop, ca me va aussi, mais je veux pas m'imposer).

Voici un exemple plus complet de ce que je pourrais vouloir en pièce jointe. Mais comme déjà dit, ce n'est qu'une vision, elle peut être adaptée si besoin pour le code.

L'idée primaire était de trier le tableau de données de l'onglet National (dans le fichier actuel) à partir des options de tri de la page d'accueil (ici Sommaire) (et après envoyer l'utilisateur sur le tableau en fonction du tri qu'il vient de faire).

Ca allégerait déjà énormément la lecture du fichier. Après, tu m'as montré qu'on pouvait copier assez facilement le contenu trié du tableau de données, donc je me suis demandé si c'était pas trop difficile d'adapter un peu ce collage pour répondre plus précisément à mes besoins.
 

Pièces jointes

  • structure test2.xlsx
    24.2 KB · Affichages: 48

DoubleZero

XLDnaute Barbatruc
Re : Tableau de données, tri depuis une autre feuille

Re-bonjour,

...Je sais que ce que je demande a un peu évolué, je voulais juste savoir si ce que je demande est faisable (après si tu sais le faire rapidement et que ca ne te dérange pas trop, ca me va aussi, mais je veux pas m'imposer)...
... je me suis demandé si c'était pas trop difficile d'adapter un peu ce collage pour répondre plus précisément à mes besoins.

Murmandamus,

A aucun instant, je n'ai pensé :

- "Murmandamus veut s'imposer" :rolleyes: ;

- "Murmandamus me dérange" :mad:.

Le seul hic : je ne suggère jamais rien sans grosse difficulté car mon niveau est très faible :(. C'est la raison pour laquelle j'ai mentionné en #6 :

présentement, je ne sais comment faire :confused:... A moins qu'un membre expert :eek: ne vienne à notre secours !

Je vais tenter de trouver une autre solution.

A bientôt :)
 

sourcier08

XLDnaute Occasionnel
Re : Tableau de données, tri depuis une autre feuille

Bonjour Murmandamus, DoubleZero, le forum,

J'ai commencé à regarder ce que je pouvais faire à mon niveau et voici un début mais je pense que la suite sera longue. Il y a 3 cellules à prendre en compte dans le sommaire avec pas mal de possibilités donc.
Je crains que si je continues dans mon élan, je finis avec un code long de 15 pages. Il doit bien y avoir un autre moyen d'y arriver. Si ça peut aider les futurs intervenants, ça sera déjà bien.

Mais je continuerai de suivre ma logique.

Code:
Option Explicit

Dim cell As Range
Dim equipement As String, theme As String, intitule As String
Dim i As Integer, j As Integer, Fin_tab As Integer

Sub test()

Application.ScreenUpdating = False


'****************************************************************************
'***************************** Tests logiques *******************************
'****************************************************************************
equipement = Range("C4")
theme = Range("C5")
intitule = Range("C6")

            If Range("C4") = "" Then equipement = "(TOUS)"
            If Range("C5") = "" Then theme = "(TOUS)"
            If Range("C6") = "" Then intitule = "(TOUS)"
'****************************************************************************
' premettra de limiter les options des boucles If
'****************************************************************************


'****************************************************************************
'******************** Éffacement des dernières données **********************
'****************************************************************************
    If Range("D12") <> "" Then

        i = Range("D65536").End(xlUp).Row
        j = Range("D12").End(xlToRight).Column
    
        Range("D12:" & Cells(i, j).Address).ClearContents
        Range("D12:" & Cells(i, j).Address).RowHeight = 13
        Range("D12:" & Cells(i, j).Address).Interior.ColorIndex = xlNone
        Range("D12:" & Cells(i, j).Address).Borders.LineStyle = xlNone
    
    End If
'****************************************************************************
'****************************************************************************


Fin_tab = Sheets("National").Range("B3").End(xlDown).Row 'dernière ligne du tableau


For Each cell In Sheets("National").Range("B3:B" & Fin_tab + 1) 'contrôle effectué sur le theme

'**************************
'***** Tests cellules *****
'**************************

If equipement <> "(TOUS)" And theme <> "(TOUS)" And intitule = "(TOUS)" Then ' obligation de choisir C4 et C5
    If cell.Offset(0, -1) Like "*" & equipement & "*" Then 'on contrôle d'abord la cellule d'équipement du tableau
        
'**************************
'***** Fin des tests ******
'**************************

        i = Range("D65536").End(xlUp).Row + 1       
        
        If cell Like "*" & theme & "*" Then 'on contrôle la cellule theme du tableau
            
            Cells(i, 4) = cell.Value
            Cells(i, 4).Interior.Color = cell.Interior.Color
                Cells(i, 4).RowHeight = cell.RowHeight 'facultatif
            
            Cells(i, 5) = cell.Offset(0, 1).Value
            Cells(i, 5).Interior.Color = cell.Offset(0, 1).Interior.Color
                Cells(i, 5).RowHeight = cell.Offset(0, 1).RowHeight 'facultatif
            
            Cells(i, 6) = cell.Offset(0, 4).Value
            Cells(i, 6).Interior.Color = cell.Offset(0, 4).Interior.Color
                Cells(i, 6).RowHeight = cell.Offset(0, 4).RowHeight 'facultatif
            
            Cells(i, 7) = cell.Offset(0, 8).Value
            Cells(i, 7).Interior.Color = cell.Offset(0, 8).Interior.Color
                Cells(i, 7).RowHeight = cell.Offset(0, 8).RowHeight 'facultatif
            
        End If
    End If
End If

Next cell

'****************************************************************************
'************************ Bordures sur les données **************************
'****************************************************************************
    i = Range("D65536").End(xlUp).Row
    j = Range("D11").End(xlToRight).Column

    Range("D11:" & Cells(i, j).Address).Borders.Weight = xlThin
'****************************************************************************
'****************************************************************************


Application.ScreenUpdating = True

End Sub


Pour le moment, je ne m'occupe pas du côté événementiel. On choisis l'équipement et le thème.
Ceux qui regardent le fichier et le code comprendront certainement où je vais (derrière une grosse montage;)).

Dites-moi qu'il y a un tunnel pour arriver de l'autre côté de la montagne !


[Édition de 10h40] J'ai revu le code pour le rendre plus propre et plus compréhensible


Il reste une question importante avant de poursuivre: Qu'est-ce qui est obligatoire ? Est-ce que le thème doit toujours être présent pour faire le tri ou y-a-t'il d'autres possibilités???
 

Pièces jointes

  • structure test2.xlsm
    36.5 KB · Affichages: 53
  • structure test2.xlsm
    36.5 KB · Affichages: 54
  • structure test2.xlsm
    36.5 KB · Affichages: 62
Dernière édition:

Murmandamus

XLDnaute Nouveau
Re : Tableau de données, tri depuis une autre feuille

Salut,

On dirait que tu es parti pour la solution bourrine de lire successivement chaque case du tableau ^^.

Pour le tri, rien n'est obligatoire (quelqu'un peut vouloir faire un tri pour ne trouver les exigences que d'un seul thème, ou d'un seul texte ou qui ne concernent qu'un équipement), mais il faut au moins un critère (sinon ca revient à copier le tableau entier et c'est pas très utile...

Ce que j'avais pensé à faire, si je partais sur le code bourrin comme ci-dessus, c'était de faire une présentation plus concise, en affichant dans un premier temps que les thèmes si on choisit (TOUS) dans la colonne correspondante sous la forme suivante :

> THEME 1
> THEME 2

Et de lier une macro sur le chevron qui, lors du clic, ferait apparaître la liste associée à ce thème là en particulier. (J'ai réalisé la structure de cette macro, a base de changement de caractère entre > et v pour déterminer l'état etc...


Je vais regarder plus en détail les codes proposés, essayer de bien en comprendre chaque fonction, leur usage et leur utilité, ca m'aidera surement pour la suite. Et si personne ne trouve de solution simple, je partirais sur le parcours total du tableau moi aussi ^^
 

sourcier08

XLDnaute Occasionnel
Re : Tableau de données, tri depuis une autre feuille

Re,

J'ai donc continué dans ma lancée et voilà qu'il y a un problème au niveau de la recherche.
Lorsque j'affiche dans l'équipement la sélection "C**", il me ressort tout ce qui comporte un C.
Ce n'est pas ce que tu demandes, je suis désolé.
Je continue de réfléchir mais je ne vois pas comment remédier à ce problème (au niveau du code). Les astérisques posent problèmes.


Bon réveillon de Saint Sylvestre... et à l'année prochaine.
 

Pièces jointes

  • structure test2.xlsm
    43.6 KB · Affichages: 44
  • structure test2.xlsm
    43.6 KB · Affichages: 45
  • structure test2.xlsm
    43.6 KB · Affichages: 49

DoubleZero

XLDnaute Barbatruc
Re : Tableau de données, tri depuis une autre feuille

Bonjour, Murmandamus, sourcier08, le Forum,

Un autre essai en pièce jointe.

A bientôt :)
 

Pièces jointes

  • 00 - Murmandamus - Qui, quand, quoi... V3.xls
    104.5 KB · Affichages: 45
  • 00 - Murmandamus - Qui, quand, quoi... V3.xls
    104.5 KB · Affichages: 46
  • 00 - Murmandamus - Qui, quand, quoi... V3.xls
    104.5 KB · Affichages: 53

Murmandamus

XLDnaute Nouveau
Re : Tableau de données, tri depuis une autre feuille

Bonjour à tous,

J'avais repris le code de sourcier08 pour l'adapter à mes besoins. Je le garde sous le coude au cas ou, il ne me manquait que le passage d'une feuille à l'autre dans la colonne "Aller à".

Tu as résolu mon problème DoubleZero, je t'en remercie :) (et ton code est bien plus concis ^^).


Sourcier08, en ce qui concerne les astérisques dans les trigrammes, je m'en étais rendu compte aussi. C'est une question que je vais poser à mes clients à la rentrée quand j'irais les rencontrer. Mais a priori, de ce que j'ai compris de la structure des trigrammes, la première lettre donne le grand domaine, puis les suivantes précisent les sous-domaines donc l'astérisque veut aussi dire tous les sous-domaines possibles.

Encore merci à tous ;)


EDIT : Ah non, encore un dernier problème. Lorsque je filtre sur le trigramme 000, il me renvoie tout. Je vais essayer de voir pourquoi et comment le modifier, mais si tu as une solution pour ton code DoubleZero je suis preneur :)

Serait-ce parce qu'il considère la cellule comme vide s'il y a 000 ?


EDIT 2 : C'est juste qu'il n'y avait pas de 000 dans mon tableau de test. Tout marche à merveille :)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 321
Membres
103 178
dernier inscrit
BERSEB50