Comment extraire/copier les données d'une feuille à l'autre
Bonjour Sébastien,
Bonjour à tous,
Je viens de m'inscrire sur ce site à l'instant à partir d'un lien google que j'ai ouvert pour une aide en Excel.
Je ne connais pas du tout VBA. J'utilise de temps à autres quelques fonctions de base de Excel.
Voici mon problème :
Je possède un tableau avec les salariés de l'entreprise.
Nous souhaitons organiser un évènement pour récompenser les salariés qui ont 10, 20, 30, 40ans ou X années d'ancienneté.
Ci-joint le fichier Excel.
Tous les salariés sont enregistrés dans la table "Tri par ancienneté".
Les anciennetés sont indiquées sur la colonne F.
Je souhaite afficher :
a) dans l'onglet "10", tous les salariés (la ligne entière) qui ont une ancienneté de 10 ans,
b) dans l'onglet "20", tous les salariés (la ligne entière) qui ont une ancienneté de 20 ans, etc
c) dans l'onglet "X", tous les salariés (la ligne entière) qui ont une ancienneté de X années,
d) dans l'onglet "Y", tous les salariés (la ligne entière) qui ont une ancienneté comprise entre 11 et 19 ans Y>10 et Y<20
e) dans l'onglet "Z1", tous les salariés (la ligne entière) qui ont une ancienneté comprise entre 21 et 29 ans Z1>20 et Z1<30
f) dans l'onglet "Z2", tous les salariés (la ligne entière) qui ont une ancienneté comprise entre 21 et 29 ans Z2>20 et Z2<30
g) Bien sûr la formule utilisée pour le point a) permettra de construire les points b) et x)
h) Bien sûr la formule utilisée pour le point d) permettra de construire les points e) et f)
Ainsi j'aurai une solution pour tout de suite.
Cependant de nouveaux salariées arrivent et le tableau principal grossit chaque année (avec des nouvelles lignes).
Je pourrais me contenter de faire la manipulation chaque année.
Est-ce possible cependant de construire une formule permanente qui peut s'adapter automatiquement à l'ensemble de ce tableau qui bouge d'une année à l'autre.
Ainsi :
i) Pour chaque point de g), est-il possible de générer automatiquement un tableau ou une macro qui permet de sélectionner dans tout le tableau (y compris les nouveaux), les salariés correspondant à une ancienneté de "x" années ?
j) Pour chaque point de h), est-il possible de générer automatiquement un tableau ou une macro qui permet de sélectionner dans tout le tableau (y compris les nouveaux), les salariés correspondant à une ancienneté comprise "x" et "y" années ?
Je m'excuse si c'est long, Mais j'espère que c'est clair. J'ai essayé avec le filtre avancé. Pas de succès.
J'espère grâce l'une ou l'autre parmi vous, qu'il existe d'autres méthodes pour obtenir une solution la plus efficace possible.
Grand merci d'avance
Bonjour à tous,
Une proposition, avec power query (données==>obtenir des données
Bonjour Djidji,
Merci pour votre contribution. C'est en effet exactement ce que je recherche.
Je ne vois aucune formule que je puisse réutiliser. S'agit-il d'un filtre ? Je n'avais réussi avec le filtre avancé, en regardant un tuto canadien :) (j'adore les canadiens)
En tous cas, je ne connais absolument pas ce power query et je ne peux pas reproduire la démarche sur mon fichier avec données personnelles.
J'espère qu'il ne s'agit pas de programmation. Si c'est le cas, je peux essayer d’apprendre si vous m'indiquez la méthode.
Merci pour votre retour. Je vais aller jeter un coup d’œil à ce power query en attendant.
Une autre solution, plus artisanale consiste à faire un copier/coller avec liaison (d'une plage + longue que le tableau initial pour permettre des ajouts) sur 5 feuilles vierges et de filtrer celles-ci à l'aide des filtres chronologiques adéquats !
C'est ce que fait power query automatiquement, mais démarrant d'un tableau, la plage est dynamique
Crdlmt
Bonjour Djidji,
Bonjour à tous,
Ta solution artisanale est parfaite et facile à comprendre pour moi
Ce serait cependant dommage de se passer d'une solution optimale et définitive qui fonctionne.
J'ai donc passé un bon moment pour essayer de comprendre le power query à partir d'un tutoriel.
Mais aucun tutoriel ne traite de la simple extraction sur base d'un critère. Et je n'ai pas bien compris les modifications à effectuer dans l’éditeur de power query dans la transposition pour obtenir le résultat recherché dans mon cas...
Le plus simple est de vous expliquer ce que je fais afin de voir où est l'erreur.
Ci-joint le fichier résumant mes manipulations (montrant que j'ai vraiment essayé de comprendre)
Je suis bloqué dans la suppression des lignes et je dois dire le nombre de lignes à conserver
Grand merci d'avance.
Bonjour à tous,
Dès le départ, c'est mauvais.
D'abord ton tableau est mal fait.
Tous les intitulés doivent être dans la même ligne et comme toujours, les cellules fusionnées sont à proscrire. C'est une très importante source d'emm.....
Dans le fichier que je t'ai envoyé, c'est ce que j'ai fait d'abord (et mal, parce que c'aurait dû être sur la 2e ligne (en l'occurrence la ligne 5))
Puis tu sélectionnes ton beau tableau.
Ensuite tu choisis "à partir d'un tableau ou d'une plage" et tu as dans PQ ton tableau avec ses intitulés et pas de lignes vide.
La, tu choisis la colonne à trier (ANCIENNETÉ au 17/01/2022) que tu tries à l'aide du filtre numérique comme dans Excel.
C'est fini et tu charges le tableau dans sa nouvelle feuille.
Ton histoire de ligne : tu regardes l'index de la dernière ligne et tu mets celui-là. Si tu en veux moins, tu mets un nombre inférieur !
Crdlmt
Quand tu auras fait ça, et que ça fonctionnera, je n'en doute pas, reviens pour la feuille X
Saluuuut Djidji l'amorosso :) (une chanson de Dalila)
Je me connecte pour te dire que j'ai réussi pour l'ancienneté fixe de 10 ans ! Youpiii !
Je vois que tu m'as répondu. Je vais en effet tenir compte scrupuleusement de tes remarques pour éviter les emm....:
Ça passe par un filtre. Je pense que les autres filtres ne seront pas plus compliqués pour trouver les anciennetés entre 2 intervalles annuels !
Merci de m'avoir donné cette piste de power query. C'est génial de découvrir un outil si puissant de Excel. Je crois que je vais me la péter lol (je rigole).
Je n'ai pas lâché l'affaire depuis 2 jours !
Je peux cliquer que le problème est résolu. J'espère que je peux quand même pouvoir te poser une dernière petite question d'ici quelques jours
Énoooorme merci. Ça donne du peps !
Ouiiii, je reviendrai pour la feuille X. Merci merci merci.
Bonjour à tous
Une autre solution PowerQuery : filtre à la demande
Saisir début fin dans le tableau de choix puis clic droit dans le tableau de résultats, Actualiser (ou Données, Actualiser Tout)
J'ai adapté les titres pour qu'il ne soit pas figés sur une date ni une année
Chers Djidji et 78Chris,
J'ai dû m'absenter longuement de mon travail. Ensuite la reprise a été surchargée.
Je me permets de revenir à vos aimables propositions concernant Power querry que j'apprécie de plus en plus.
J'avoue que je bloque quand il faut charger 2 tableaux, aussi bien pour la requête X de Djidji postée le 17/01/2022
que pour la requête de 78Chris postée le 19/01/2022 et qui offre une solution globale.
Les 2 solutions sont intéressantes.
Je peine à ajouter un deuxième tableau où on peut saisir le critère de sélection
(soit un age fixe X, soit un intervalle DE .... À....)
Ci-joint un fichier avec mes observations
Merci d'avance pour votre aide au moment vous pourrez.
Jacob
Bonjour
La solution proposée fait les deux : si DE et A sont identiques, c'est comme une valeur fixe sinon c'est un intervalle.
J'ai du mal à comprendre où tu bloques... Ici rien de très compliqué dans l'utilisation de PowerQuery
Le tableau de choix est créé tout simplement, nommé Choix puis chargé et typé c'est tout (typage automatique au chargement du tableau dans PowerQuery)
L'autre requête LISTE l'utilise pour filtrer depuis la tableau de l'onglet Tri par ancienneté
Oui 78Chris, en effet elle fait les 2, même si j'aimerais comprendre les 2. J'envisage que ce sera plus facile pour un autre utilisateur futur de taper un seul chiffre pour un ancienneté souhaitée. La solution d'intervalle est exceptionnelle pour rattraper un retard. Sinon plus tard ce sera toujours une ancienneté fixe.
Tes explications me relancent dans motivation à comprendre.
Je te tiens au courant. Merci
RE
On peut légèrement modifier la requête choix pour laisser l'utilisateur ne remplir qu'une des cases...