Réduction de 12 lignes en 1 ligne avec nouvelles dates - de mois à année

Bonjour,

C'est un oubli de ma part, comme j'ai fait un copié-collé d'un fichier sur l'autre et que le nombre de colonnes n'était plus le même, j'en ai zappé une.

sur la ligne Total = Total + Cells(j + 1, "Q") 'alors on ajoute au total le nombre d'heures de chaque ligne dont la cellule en colonne T = 0

remplacez "Q" par "S"

Et refaites le test

Bonjour Arturo,

Encore merci pour tes réponses.

J'ai adapté et cela va mieux ! ;-)

Il y a encore une souci. Il scinde en fait les personnes en 2. Jusqu'au 30/11 et après. Et même quand il n'y a aucune raison.

TG

Pouvez-vous m'indiquer le matricule en défaut?

Moi, je n'en vois qu'un, le 198381, mais il y a bien une différence à chaque fois sur l'une des cellules.

En effet !

Il s'agissait d'un décalage dans mes 48OOO lignes !

Je pense que c'est bon.

Je vérifie plus en détail et je te dis quoi.

Un tout grand merci pour ton aide.

TG

Ps. Cela a pris 10 minutes

Bonjour,

10 mn c'est long, J'ai modifié le code pour augmenter la vitesse d'exécution, sur le peu de données dont je dispose je ne peux pas en voir le bénéfice, dites-moi si vous voyez de l'amélioration.

Cdlt

Bonjour Arturo,

Désolé pour le retard mais je n'avais eu le temps de tester la nouvelle version.

Le gain de temps est minime. Mais ce n'est pas grave. Je peux le faire tourner et avoir un résultat très intéressant. Le temps n'est pas le plus important c'est le résultat qui compte car faire cela à la main me prendrait des heures et des heures.

J'essaie par contre de refaire le fichier mais la je coince

Je vais essayer de mettre les autres nouvelles données dans la forme de la macro et voir ce que cela donne car le principe est le même.

Merci pour ton aide précieuse.

TG

Bonjour à tous,

Je me permets de réactiver ce sujet que j'avais mis en ligne en avril. A l'époque on m'avait bien aidé et fait gagner beaucoup de temps. Je pensais que j'aurais pu garder la macro créée mais... les formats de fichier sur lesquels nous travaillons ont changé. Je ne sais donc plus utiliser la macro. J'ai essayé de mon côté en la modifiant mais cela fait 1 semaine que j'essaie et c'est la catastrophe. D'autant plus que je dois remettre le fichier dans 10 jours !

Si vous savez m'aider, vous m'éviterez quelques nuits blanches car je serai sinon obliger de le faire manuellement ... .

Je remets donc mon problème en détails.

Je le fais donc avec un exemple. A droite dans le fichier avec les couleurs c'est le résultat auquel je dois arriver.

J'ai un fichier de 4000 personnes. Ce fichier contient pour chaque personne 1 ligne par mois une série de renseignements et des montants.

Donc si X a été présent 12 mois, il a 12 lignes. Mon fichier est donc d'environ 60.000 lignes.

Il s'agit de lignes mensuelles et parfois on en a trois pour une personne par mois.

Je dois transformer ce fichier "mensuel" en fichier annuel. Mais en plus quand un des renseignements entre D et O repris sur cette ligne n'est pas identique je dois scinder et donc il est possible que pour des personnes j'ai plusieurs lignes mais je dois avoir pour chaque période la date de début et la date de fin et le total des deux dernières colonnes.

Je voudrais donc réduire ces 12 lignes à 1 avec la 1er nouvelle date de début et la dernière date de fin et donc pour certains avoir la ou les lignes avec le renseignement spécial et avoir le total des deux dernière colonnes. Donc la somme des 12 mois.

Je ne sais pas s'il y a moyen de travailler avec une fonction ou s'il y a un "truc" manuel mais vous imaginez que passer 60.000 lignes en revue n'est pas possible.

Je joins un fichier avec deux exemples et le résultat à obtenir est sur la droite.

Ce serait vraiment sympa si vous pouviez me faire une macro ou me dire comment y arriver. Ou allez le plus loin possible dans le traitement.

D'avance merci.

Toonies.

9projetx.xlsx (67.17 Ko)

Bonjour,

Dans votre exemple, pour le matricule 785044, comment faites -vous pour trouver ETP1=1 et ETP2=1?

De plus, il eût été préférable de créer un nouveau sujet pour obtenir plus de réponses.

Cdlt

Bonjour Arturo,

Comme je sais que les règles sur les forums sont parfois un peu strictes, je n'ai pas osé créer un nouveau sujet. S'il le faut je fais, mais je ne sais pas qui décide.

Les ETP sont des valeurs qui sont dans le fichier. Il n'y a pas de formules.MAis, si on réduit de 12 lignes à 1, le total de ETP1 doit être de 12 et celui d'ETP2 aussi. Il n'y a pas de total de ETP1 + ETP2

Bonjour à tous !

Une proposition via Power Query (nativement intégré à votre version Excel) :

En espérant avoir correctement interprété votre besoin, notamment le regroupement des dates et des ETP sur la seule base du matricule.

J'obtiens des résultats différents des vôtres....

La proposition de JFL, que je salue au passage, est idéale puisque elle utilise la puissance de Power query.

Ma question précédente:

Dans votre exemple, pour le matricule 785044, comment faites -vous pour trouver ETP1=1 et ETP2=1?

faisait référence à votre tableau de résultats, pas à la façon dont sont issues ces valeurs

Bonjour,

Je réponds à JFL et Arturo dans ce message.

JFL : De ce que je vois vous avez bien compris ma demande. Je le dis sans flagornerie, j'ai un peu de mal mettre des mots sur ce que je veux faire passer.

Donc oui, pour chaque matricule, il faut réduire au maximum, les en principe 12 dates pour obtenir 1 ligne e ten bout de ligne il faut totaliser sur la période des ETP 1 et 2.

Je vais vérifier "manuellement" pour voir si j'arriverais au même résultat.

Quand vous dites que vous n'obtenez pas le même résultat que moi, je pense que c'est moi qui n'ai pas mis dans mon exemple... le bon total. C'est la preuve que manuellement ce que l'on me demande est compliqué. Je suppose que vous parlez de mon total dans ETP pour le deuxième matricule ?

Arturo : Je ne comprends pas très bien votre message. :-) En fait, les données ETP 1 et 2, sont des valeurs pour chaque matricule. Si j'ai 12 mois avec 1, quand on totalise on doit avoir 12. Il faut simplement que je puisse arriver au même total. Je ne sais pas si c'est ce que vous demandez.

Je vais regarder les résultats sur mon échantillon. Si c'est bon, je vais le faire tourner sur l'ensemble de l'année.

Mais je n'ai aucune idée de ce qu'est power query ? Que devrais-je faire ?

Je vous dis quoi rapidement.

En tout cas un énorme merci pour votre aide.

Toonies

Bonjour,

J'ai vérifié.

Il y a des "erreurs". Ne prenez bien évidemment pas ceci comme une critique.

Pour les dates : Quand il y a un changement sur une période, il faut que la période soit bien distinguée et le total des ETP doit se faire pour cette période.

C'est l'exemple 785049. Dans mon exemple, la période s'arrête au 31/05 car en 05/2019, un des renseignements change. Ici on passe à 30,40 à la place de 19. Et on totalise les ETP de janvier à mai. Et ensuite pour le reste?

Or, je vois que les dates ne changent pas et que le total n'est pas correct.

Bonjour de nouveau !

Mais je n'ai aucune idée de ce qu'est power query ? Que devrais-je faire ?

Power Query est un outil, intégré à votre version Excel, qui, entre autre, autorise la transformation et l'enrichissement de vos données.

Pour prendre connaissance des étapes appliquées à vos données, il vous faut faire un clic droit dans une cellule du tableau retourné par Power Query, menu "Table / Modifier la requête". La fenêtre de l'éditeur Power Query va s'ouvrir et vous découvrirez, à sa droite, les différentes étapes appliquées à vos datas.

Si la structure de votre fichier réel est identique à celle de votre fichier test, il vous suffira de copier/coller les requêtes dans votre classeur réel et lancer l'actualisation. C'est tout.
Si la structure est différente, il faut nous la communiquer, avec quelques lignes de données, pour que nous puissions adapter la requête.

Bonne découverte !

Vous avez répondu à ma question en vous adressant à JFL

Quand vous dites que vous n'obtenez pas le même résultat que moi, je pense que c'est moi qui n'ai pas mis dans mon exemple... le bon total. C'est la preuve que manuellement ce que l'on me demande est compliqué. Je suppose que vous parlez de mon total dans ETP pour le deuxième matricule ? c'est bien de cela que je parle.

Mais je n'ai aucune idée de ce qu'est power query ? Que devrais-je faire ?, Sur ce sujet je ne peux vous répondre vu qu'on ma version excel est trop ancienne, mais je sais qu'on peut obtenir des résultats assez intéressants, il faut faire un peu d'apprentissage, je le laisse à JFL le soin de vous en dire un peu plus sur ce point.

Cdlt

Pour moi tout je prends tout ce qui peut m'aider. Donc merci.

J'ai quand même cette question des dates. Ne faudrait-il pas les corriger avant que je lance ou essaie de lancer cela à grande échelle ?

Encore merci pour votre aide.

Bonsoir de nouveau !

Je vous livre une version 2 avec une approche nouvelle :

Regroupement sur le matricule et les éléments des colonnes "D" à "O" de votre fichier exemple.
Les dates (début et fin) et le cumul des ETP sont déterminés par ce niveau de regroupement.

Bonsoir JFL, Artur,

J'ai comparé les données par exemple la somme des ETP, la somme des jours entre la version brute et le résultat obtenu avec Power Query.

Je suis sur le c** ! Ce la tombe juste.

Plus difficile à vérifier, les coupures en fonction d'un changement d'une des colonnes sur la ligne me semblent bonnes également.

C'est TOP.

Je ne connaissais pas cet outil.

Pour la suite :

- Comme j'ai pris un échantillon de mes 60.000 lignes. Est-ce que je copie sur les anciennes données environ chaque fois 1000 lignes ? Donc répéter l'opération environ 60 fois. Ce n'est rien par rapport au temps que je vais gagner. Ou est-ce que je peux mettre dans l'onglet data et actualiser ?

- J'ai un peu regarder mais je ne vois pas ou et comment vous scindez et totaliser ? J'aimerais bien voir comment vous faites.

Grand merci.

Toonies

Bonsoir de nouveau !

La méthode la plus simple consiste , me semble-t-il, à :
- Copier (en une seule fois !) la feuille "données" de votre classeur réel dans le classeur qui contient les requêtes.
- Supprimer la feuille contenant vos données anciennes.
- Insérer un tableau structuré (t_Data) dans la feuille qui contient l'intégralité de vos données,
- Et actualisez le tout.

Il existe de nombreuses vidéos sur le net qui vous apprendront les rudiments sur Power Query. Je ne peux que vous inciter à les visionner.

Rechercher des sujets similaires à "reduction lignes ligne nouvelles dates mois annee"