Générer un Tableau Automatiquement en Fonction d'un Critère

sisley

XLDnaute Nouveau
Bonjour à tous,

C'est mon premier message sur le forum et je tiens à m'excuser par avance si je ne respecte pas entièrement les "Codes et Principes de Conduites".

Je dispose d'un fichier qui comporte deux onglets majeurs : "LIST" et "SYNTH". Ce fichier a pour objectif de m'aider à récolter les difficultés rencontrées par les collaborateurs sur un projet et de faire une synthèse hebdomadaire.
- Dans l'onglet "LIST" on retrouve la liste entière des problèmes rencontrées et la qualification associée.
- Dans l'onglet "SYNTH" on retrouve une synthèse ciblée du tableau présent dans l'onglet "LIST". Le tableau de l'onglet "SYNTH" ne comprend pas toute l'information du tableau de l'onglet "LIST".

Existe-t-il un moyen simple et efficace de faire remplir automatiquement le tableau de l'onglet "SYNTH" en fonction des trois critères définis dans les listes déroulantes ?

A ce jour j'effectue ce travail de manière manuelle. Je filtre l'information dans le tableau de l'onglet "LIST" et je fais des copier / coller des colonnes qui m'intéressent.

Vous trouverez le fichier sur lequel j'effectue mes travaux en pièce jointe.
La quantité de ligne peut être supérieure à 1000 d'où mon souhait d'automatisation.
Les informations mentionnées sont fictive

Merci beaucoup pour votre aide,
 

Pièces jointes

  • SUIVI.xlsx
    12.7 KB · Affichages: 43
  • SUIVI.xlsx
    12.7 KB · Affichages: 46
  • SUIVI.xlsx
    12.7 KB · Affichages: 48

sisley

XLDnaute Nouveau
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Ah, merci pour votre réponse.

J'ai oublié de préciser une chose importante : Je suis NOVICE sur EXCEL...
Combo Box, Use Form sont des termes absents à ce jour de mon vocabulaire.

Merci par avance,
 

Dranreb

XLDnaute Barbatruc
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Bof. Il faut croire que je suis dans un bon jour. J'ai déjà dessiné l'Userform, je n'ai plus qu'à aller jusqu'au bout…
En attendant vous pouvez toujours faire Alt+F11, Insertion, Userform pour voir ce que c'est.
 

sisley

XLDnaute Nouveau
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Bonsoir,

Merci beaucoup pour votre réponse.

Je vais tenter de répliquer vos travaux sur mon fichier réel.

Le fichier fourni était avec des données fictives.

Je reviendrai vers vous si je rencontre des difficultés.
 

sisley

XLDnaute Nouveau
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Bonjour, j'ai repris les éléments fournis et j'ai tenté de les adapter à mon tableau réel.
FListe.Rows(2) : C'est la feuille qui contient toutes les informations. Cela commence à la ligne 2.
CL.Add Me.CbxTRACK, "A" : Colonne A dans laquelle un premier filtre sera opéré. Ici c'est TRACK (Projet en Français)
CL.Add Me.CbxSTATUS, "C" : Colonne C dans laquelle le second filtre sera opéré. Ici c'est STATUS (Statut du projet)
CL.Add Me.CbxGROUP, "AD" : Colonne AD dans laquelle le troisième filtre sera opéré. Ici c'est GROUP (Groupe auquel appartient le projet)
Te = CL.PlgTablo.Resize(, 30).Value : Tableau dans lequel sont situées les colonnes A, C et AD. Il comporte 30 Colonnes et une X Ligne
ReDim Ts(1 To UBound(TLgn), 1 To 14) : Tableau dans lequel les informations seront affichées. Il comporte X ligne et de 1 à 14 Colonnes

Aucune modification pour : Peut être que je me trompe
For Ls = 1 To UBound(TLgn)
Le = TLgn(Ls)
For C = 1 To 4: Ts(Ls, C) = Te(Le, C): Next C
Ts(Ls, 5) = Te(Le, 6): Next Ls


FSynth.[A2:F50000].ClearContents
FSynth.[A2].Resize(UBound(Ts, 1), 5).Value = Ts
: Feuille les informations triées par la combox box apparaîtront...

Qu'en pensez-vous ?


Option Explicit
Dim WithEvents CL As ComboBoxLiés
Dim TLgn() As Long

Private Sub UserForm_Initialize()
Set CL = New ComboBoxLiés
CL.Plage FListe.Rows(2)
CL.CorrespRequise = True
CL.Add Me.CbxTRACK, "A"
CL.Add Me.CbxSTATUS, "C"
CL.Add Me.CbxGROUP, "AD"
CL.Actualiser
End Sub

Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
Select Case NbrLgn
Case 0: Me.LabInfo.Caption = "Faites vos choix."
Case 1: Me.LabInfo.Caption = "Un seul élément."
Case Else: Me.LabInfo.Caption = NbrLgn & " éléments."
End Select
Me.BtnSynth.Enabled = NbrLgn > 0
End Sub

Private Sub CL_Résultat(Lignes() As Long)
TLgn = Lignes
End Sub

Private Sub BtnEffacer_Click()
CL.Nettoyer
End Sub

Private Sub BtnSynth_Click()
Dim Te(), Le&, Ts(), Ls&, C&
Te = CL.PlgTablo.Resize(, 30).Value
ReDim Ts(1 To UBound(TLgn), 1 To 14)
For Ls = 1 To UBound(TLgn)
Le = TLgn(Ls)
For C = 1 To 4: Ts(Ls, C) = Te(Le, C): Next C
Ts(Ls, 5) = Te(Le, 6): Next Ls
FSynth.[A2:F50000].ClearContents
FSynth.[A2].Resize(UBound(Ts, 1), 5).Value = Ts
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = 1
End Sub
 

Dugenou

XLDnaute Barbatruc
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Bonjour Sisley, mes respects Dranreb,

Une proposition par formules matricielles en pj
L'utilisation des tableaux rend la formule plus simple à comprendre même si plus longue.
Bravo pour les listes de validation et pour les tableaux, pour une novice c'est déjà très avancé !

Cordialement
 

Pièces jointes

  • sisley SUIVI.xlsx
    15.1 KB · Affichages: 54

Dranreb

XLDnaute Barbatruc
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Bonjour.

Aucune modification dans la boucle, non !
La boucle ne renseigne le tableau résultant que jusqu'à la colonne 4, et une instruction supplémentaire renseigne la 5 à partir de la 6 du tableau de départ. Il vous reste à garnir les colonnes 6 à 14, et à remplacer aussi le 5 du Resize par 14.
Si vous avez trop de difficulté, un classeur bidon joint, avec seulement quelques ligne de la vraie structure pourrait nous faciliter la mise au point.
 

sisley

XLDnaute Nouveau
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Bonjour,

Merci beaucoup pour votre proposition. Je suis "UN" novice et pas "UNE" :)
La commande modifiée ci-dessus est l'oeuvre de Dranreb. J'ai juste tenté de comprendre et d'adapter.

Je pensais à la formule matricielle, elle semblait plus facile à mettre en oeuvre et à modifier en cas de "Soucis".
Cette après-midi, si j'ai le temps, je vais adapter la formule matricielle proposée à mon tableau réel.

Merci encore.
 

sisley

XLDnaute Nouveau
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Bonjour à tous !
Avec la formule MATRICIELLE cela fonctionne à merveille et c'est simple (Pour Moi) à modifier, transposer et dupliquer.

J'aurai une petite question au sujet de la formule :
Pourquoi il y a l'argument TABLEAU_LIST[STATUT] à l'endroit en GRAS (LIGNE) ?

=SIERREUR(INDEX(TABLEAU_LIST[[#Tout];[PROJET]];PETITE.VALEUR(SI((TABLEAU_LIST[PROJET]="PROJET "&SYNTH!$A$5)*(TABLEAU_LIST[STATUT]=SYNTH!$A$8)*(TABLEAU_LIST[TYPE DE PROBLEME]=SYNTH!$A$11);LIGNE(TABLEAU_LIST[STATUT]));LIGNES(C$3:C3)));"")


Si je veux ajouter une nouvelle condition la formule, la DATE, la formule serait :
=SIERREUR(INDEX(TABLEAU_LIST[[#Tout];[PROJET]];PETITE.VALEUR(SI((TABLEAU_LIST[PROJET]="PROJET "&SYNTH!$A$5)*(TABLEAU_LIST[STATUT]=SYNTH!$A$8)*(TABLEAU_LIST[TYPE DE PROBLEME]=SYNTH!$A$11)*(TABLEAU_LIST[DATE DU PROBLEME]=CELLULE OU IL Y A LA DATE);LIGNE(TABLEAU_LIST[STATUT]));LIGNES(C$3:C3)));"")

Merci pour votre aide !
 

Dugenou

XLDnaute Barbatruc
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Bonjour,
Pardon pour le genre : j'ai cru que sisley était un prénom de fillle.
Pour la première question : le LIGNE(TABLEAU_LIST[STATUT]) sert à renvoyer le N° de ligne qui correspond aux critères, ça peut être n'importe laquelle des colonnes utilisées dans les critères (projet, type de pb etc.
Pour la deuxième question : oui tout à fait !
Cordialement
 
Dernière édition:

sisley

XLDnaute Nouveau
Re : Générer un Tableau Automatiquement en Fonction d'un Critère

Bonjour,

Merci pour vos réponses.
Cette solution sera sans doute "transitoire". Elle va me permettre de rendre la construction des synthèses automatique.
Je vais me pencher, dès que j'aurai plus de temps sur la "MACRO" et apprendre à l'adapter et à l'utiliser au mieux.

Je reviendrai vers vous ultérieurement !
Sisley
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi