Fusion de lignes

bonjour j'aimerai fusionner des lignes selon l'identifiant article.

Pour les prix on retient le plus élevé.

Merci

res

Bonjour,

un peu plus de précision dans ce que tu veux, un exemple, un fichier ? Parce que là, je ne pense pas être le seul à ne rien comprendre de ce que tu veux ...

Bonjour,

En fait je veux une macro qui fusionne les lignes suivant l'identifiant article en une ligne et que quand on a sur plusieurs lignes des tranches égales qu'on lui associe le prix le plus élevé et qu'on prenne en compte toutes les tranches , comme dans l'exemple du fichier.

Merci beaucoup

6exemple.xlsx (9.49 Ko)

Re-

Pourquoi alors 43,99 ?

Parce que sur la première ligne on a 2 qui est associé au prix 43,5 et dans la seconde ligne on 2 qui est associé au prix 43,99.

Donc on conserve 2 associé au prix le plus élevé entre ces deux lignes et max(43,5; 43,99)=43,99 d'où on retient 43,99 comme prix associé à la valeur 2

ok, mais il est indiqué 44 sur la ligne non fusionnée

d'où ma remarque

En fait ce prix de 44 sur la ligne 2 est le prix de la tranche 2 de valeur 3

Et donc la tranche 2 est à 43,5 et non 43,99 ??!!

En fait on a le choix entre ces deux valeurs mais je voudrais que quand on a le choix entre des valeurs qu'on prenne le maximum des choix possible: d'où au lieu de prendre 43,5 je préfère 43,99 (qui est le maximum).

Merci

En fait les conditions doivent-être les suivantes si je comprends bien :

1. vérifier si il y a des doublons dans les articles;

2. si il y en a, fusionner les numéros en plaçant "_" entre les numéros;

3. Vérifier dans les tranches de ces doublons si il y a un ou plusieurs chiffres identiques;

4. si c'est le cas, vérifier quel est le plus grand;

5. garder le prix le plus grand et supprimer les autres;

6. ajouter toutes les tranches différentes les une à la suite des autres sur une ligne pour les articles identiques.

Alors d'autres questions me viennent à l'esprit :

a. est-il possible qu'il y a ait plus de trois tranches par article à la base (donc avant fusion) ?

b. la mise en forme est toujours identique ? A savoir en colonne A "article", en B "Numéro", en C "Tranche 1", ... ?

@Steelson

En fait j'ai mis le temps à comprendre aussi mais si tu suis la logique que j'ai mise au dessus tu devrais comprendre

Concrètement, dans un article à valeur égale (donc cellule A2 et A3 dans le fichier exemple) il veut que l'on cherche dans les différentes tranches si un chiffre est le même (donc dans le fichier exemple les cellules C3 et E2 (de valeur "2" toutes les deux) ou G2 et G3 (de valeur "5" toutes les deux)) et qu'on ne garde que le prix les plus haut des deux, en supprimant l'autre pour ensuite transposer toutes les tranches et prix différents sur une seule et même ligne ...

Vos 6 points résumes parfaitement ce que je veux.

a. Oui le nombre de tranches peut varier en fonction du numéro, pour un même article.

b. Oui la mise en forme est identique

Merci beaucoup

Ma dernière question de compréhension (mais je laisse Rékiss traiter) : peut-il y avoir des lignes en triple (ou plus) ?

Oui il peut y avoir des lignes en triple et plus même.

Merci

Bon ... je suis content d'avoir pu participer à la compréhension de ce que tu demandes mais je dois bien me résigner à savoir coder ça ... Mes compétences en la matière sont encore bien trop courte désolé.

J'espère qu'un membre plus aguerri y arrivera ...

Pour m’entraîner et apprendre encore je vais tenté de le faire en tout ou partie mais ça risque de prendre beaucoup de temps donc compte plutôt sur quelqu'un d'autre.

si il y a une bonne solution par contre je serais heureux de la voir

Rékiss

D'accord merci quand même et j'espère que quelqu'un d'autre pourra m'y aider.

Bonjour,

Voici un bout de code macro qui fait à peu près ce que j'ai décrit mais n'est pas suffisant.

Private Sub Worksheet_Activate()

Set liste = CreateObject("scripting.dictionary")

With Feuil1

For Each c In .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row)

liste(c.Value) = liste(c.Value) & c.Offset(0, 1) & "_"

Next c

End With

Me.Cells(1, 1).Resize(liste.Count, 1) = Application.Transpose(liste.keys)

Me.Cells(1, 2).Resize(liste.Count, 1) = Application.Transpose(liste.items)

End Sub

Merci

Bonjour,

Quelqu'un peut il m'aider s'il vous plait à réaliser le travail décrit.

Merci

Rechercher des sujets similaires à "fusion lignes"