Condenser le contenu de plusieurs lignes en une seule

Bonjour à tous,

Je travaille sur un projet de traitement de données sur Excel et je suis novice en VBA, l'idée étant d'automatiser les tâches au maximum. J'ai réussi à me débrouiller pour l'instant avec des codes trouvés sur internet mais là je bloque...

Je dispose d'une base de données (fichier ci-joint) que j'ai simplifié au maximum. C'est un export depuis un logiciel mais qui comporte des erreurs. En gros j'aimerais pouvoir condenser le contenu de plusieurs lignes redondantes en une seule (mises en couleur sur le fichier).

Je vous explique avec un exemple : en partant des 4 lignes vertes avec pour identifiants "2" et "D", j'aimerais garder le contenu de la ligne dont la date est la plus récente en faisant la somme des 4 "temps A" en colonne D. J'ai mis un exemple de ce que je voudrais en Feuil2 pour bien comprendre. Je ne sais pas comment coder ça en VBA pour que ça traite la plage de données de façon automatique.

Est-ce que l'un de vous a une idée svp ?

Merci d'avance

13exemple.xlsx (12.13 Ko)

Bonjour et sur le forum,

Je te joins le fichier avec une solution:

21exemple.xlsm (21.15 Ko)

par contre je ne gère pas les couleurs dans la macro, je ne sais pas si c'est souhaité

il faudra lancer la macro manuellement

Merci beaucoup c'est parfait !

Je vais maintenant essayer de l'adapter à une base de données plus grande

Re,

ça marche! bon courage

si jamais tu as des soucis, n'hésite pas à reposter un message sur le sujet

Ps: d'ailleurs je suis entrain de me demander si je n'aurais pu être plus rapide étant donné que tes données se suivent...

Bon j'ai un petit soucis mais rien de bien méchant je pense

J'ai une erreur de compilation "type défini par l'utilisateur non défini" sur la ligne "Dim colecLigs As New Dictionary, colecVals As New Dictionary"

Il faut que je déclare ces variables comme dictionnaires non ?

Re, ah ok je vois, tu n'as pas la référence d'activée... il faudrait soit aller dans Outils depuis la fenêtre VBA, puis Références, et chercher Microsoft Scripting Runtime pour le cocher, ou bien remplacer les lignes par:

Set colecLigs = CreateObject("Scripting.Dictionary")
Set colecVals = CreateObject("Scripting.Dictionary")

C'est bon ça semble fonctionner, merci !

De rien

Rechercher des sujets similaires à "condenser contenu lignes seule"