Formule pour trier des salariés dans plusieur tableaux à partir d'une liste

Bonjour à tous,

Autoformée sur Excel, je rencontre une difficulté sur une tâche qu'on m'a confié au boulot.

J'ai une liste de personnes affectées à différents sites, et je dois mettre en place un système permettant à partir de cette liste de constituer un tableau du personnel pour chaque site. La liste est sur une feuille de classeur, les différents tableaux sont chacun sur une feuille du même classeur.

Pour des raisons de confidentialité je ne peux pas joindre le fichier original, mais j'ai joint une version simplifiée.

Il faut que ce système permette d’automatiser la mise à jour des différents tableaux lors des mouvements de personnel. La seule feuille qui pourra être modifiée est la liste du personnel.

Je sais qu'il n'y aura jamais plus de x personnes par site, ce qui me permet d'anticiper l'espace nécessaire pour insérer les noms dans le tableau depuis la liste.

La seule donnée à reporter de la liste aux tableaux est le nom de la personne, et le tableau où son nom sera reporté sera fonction du contenu de la cellule adjacente.

Par exemple, suivant le fichier joint: Il faudra que toutes les personnes du site A (sur la feuille "Données")soient reportées sur le tableau dans la feuille "Site A". Celles du site B dans la feuille "Site B", idem pour C. Et si j'ajoute une nouvelle personne, lorsque son site sera indiquée elel sera automatiquement ajoutrée au tableau correspondant.

Comme précisé au début, je suis plus ou moins autoformée sur Excel, et mes bases concernant l'utilisation des formules sont assez lacunaires, même si je comprend le principe. Je n'ai en revanche aucune formation sur VBA. il existe peut être une solution simple pour mettre en place ce système, mais en l'état cela dépasse mes connaissances.

Pouvez-vous m'aider SVP?

Bonjour, une proposition, bien à toi.

Bonjour à tous,

Pourquoi ne pas élaborer une base de données complète, filtrée sur le site (par exemple) via un segment ?

@jmbr1972

Ce serait effectivement simple et efficace. Mais y a-t-il un moyen pour qu'il n'y ait pas de ligne vide entre les noms dans les tableaux? En réalité j'ai au moins 150 noms à classer, sur des sites de max 30 personnes. Avec la mise en page actuelle, les tableaux ne seront pas très lisibles.

@JFL le problème c'est que je dois impérativement suivre cette structure de tableaux, je n'ai pas le choix. Il serviront à calculer des taux d'absentéisme, entre autre, et pas juste à indiquer qui est sur le site (sinon j’aurais juste mis en place des filtres). Merci malgré tout pour la suggestion.

Re, le façon la + facile est de mettre un filtre sur la colonne et de filtrer de Z à A car le souci, c'est que ces lignes ne sont pas vides, elles contiennent une formule. Tu peux aussi filtrer et decocher "VIDE" et c'est OK

Sinon, tu as cette possibilité en matricielle mais je te conseille vivement de filtrer et de décocher "VIDE" , voici la formule à terminer par CTRL+MAJ+ENTER

{=SIERREUR(INDEX(A:A;PETITE.VALEUR(SI($A$2:$A$80<>"";LIGNE($A$2:$A$80));LIGNES(A$2:A2)));"")}

@jmbr1972

Aïe du coup cette première solution des filtres ne marchera pas pour moi, puisque je dois insérer des lignes de calculs d'effectifs et de temps de présence en bas du tableau. Et vu les effectifs, et pour des raisons de lisibilité, le tableau actuel ne fait qu'une cinquantaine de lignes maximum. 150 lignes au lieu de 50 ça fait beaucoup.
A moins de remanier l'organisation du tableau je ne vois pas comment faire. Mais je retiens l'astuce!

Concernant la solution matricielle, j'avoue ne pas connaître ou comprendre de quoi il s'agit je vais me renseigner pour y voir plus clair

Re, ce n'est pas un souci pour tes effectifs d'utiliser le filtre, si tes calculs de temps de présence sont bien associés à ta liste, ils vont suivre les personnes associées. Sinon, je pense qu'un pro du VBA pourrait t'aider, là, je ne suis pas assez calé ! Bonne continuation et bonne soirée !

@jmbr1972

Je vais tester cette solution, on ne sait jamais. Et je vais continuer à chercher si ça ne marche pas.
Merci pour ton aide, bonne continuation également!

Bonsoir à tous,

Une proposition avec des TCD.

Cordialement

Bonjour @Zebulon2,

merci pour cette proposition de solution.

Si j'ai bien compris la méthode, il s’agit de copier la liste originale sur chaque feuille, et de la transformer en tableau croisé dynamique, puis de filtrer par site?

Je ne suis pas sûre que cela marche pour moi, la liste réelle sur laquelle je travaille fait dans les 150 noms, et pour des raisons de lisibilité les tableaux par site ne doivent pas faire plus de 30 lignes environ.

De plus, la mise à jour ne se fait pas automatiquement, il faut à chaque modification re-copier/coller la liste dans chaque feuille? Le problème est que la mise à jour automatique des listes est une condition impérative de la demande.

Merci malgré tout pour ton aide

Bonsoir,

On ne copie pas la liste sur chaque feuille, on crée un TCD par onglet avec uniquement le site concerné.

Il est possible d'automatiser l'actualisation des TCD avec un simple instruction VBA

ActiveWorkbook.RefreshAll

Le nombre de salariés affiché correspondra au nombre de salarié sur le site concerné.

Cordialement.

Rechercher des sujets similaires à "formule trier salaries tableaux partir liste"