Fusionner et additionner des lignes

Bonjour à tous,

utilisant excel tous les jours, je me remet à chercher des solutions pour me faire gagner du temps. Malheureusement, d'après ce que je peux voir sur ce que je voudrais faire, je pense que cela me dépasse totalement.

J'utilise un tableau excel avec des lignes comportant des références de produits. Dans ces lignes, une seule chose serait à aditionner, le nombre de produits.

Mon but serait de regrouper les lignes qui sont identiques (en vérifiant que les données des 2 premières colonnes soient identiques) et de les faire se regrouper en 1 seule ligne quand ils sont identiques tout en additionnant les données de la colonne qté (dans mon fichier colonne C).

https://forum.excel-pratique.com/excel/fusionner-et-additionner-en-meme-temps-des-lignes-t9633.html

Je vous ai mis un fichier "essai" avec mes propres données. De plus, le lien ci dessus traite du meme sujet, et a la fin du sujet, il y a un fichier avec la macro qui fait ce vers quoi je voudrais arriver....

Merci d'avance pour votre aide!!!

Yann

2'615essai.zip (21.98 Ko)

Bonjour et bienvenue,

Vois si çà te va,

Sub Récap()
Dim Lg%
Application.ScreenUpdating = False
''Macros par Claude Dubois pour "snoom82" Excel-Pratique le 10/05/10
    Sheets("Trappes CDF").Copy Before:=Sheets(1)
    ActiveSheet.Name = "bibi"
    Lg = Range("A65536").End(xlUp).Row
        '--- tri et extrait sans doublons agrément ---
    Range("a5:h" & Lg).Sort Key1:=Range("e6"), Order1:=xlAscending, _
    Header:=xlYes, OrderCustom:=1, MatchCase:=False
    Range("j2") = "=$e6<>$e7"
    Range("a5:h" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
    "j1:j2"), CopyToRange:=Range("Extrait!a5:f5"), Unique:=True

        Application.DisplayAlerts = False
        Sheets("bibi").Delete
        '--- tri et met les formules ---
    With Sheets("Extrait")
        .Activate
        Lg = .Range("A65536").End(xlUp).Row
        .Range("a5:h" & Lg).Sort Key1:=.Range("a6"), Order1:=xlAscending, _
        Header:=xlYes, OrderCustom:=1, MatchCase:=False
        .Range("h6:h" & Lg) = "=f6*g6"
        .Range("g6:g" & Lg) = "=SUMPRODUCT((Agrément=d6)*(QTE))"
    End With
End Sub

Amicalement

Claude

1'339snoom82.zip (28.14 Ko)

Bonjour,

Et bien c'est tout simplement magique! Je suis de plus en plus surpris par les possibilités d'excel. Je vais étudier un peu la macro car j'aimerai tt de même comprendre un peu mieux ce qui se passe.

Cordialement

Yann

Bonsoir à tous,

Explication codes macros (les grandes lignes)

1) Créer une feuille temporaire ici nommée "bibi" (copie de la feuille initiale)

2) Trier cette nouvelle feuille par colonne agrément de façon à éliminer les doublons

3) Extraction sans doublons sur feuille "Extrait" et suppression feuille "bibi"

4) Tri colonne A et mise en place formules en colonnes G:H

Au préalable j'ai nommé sur la feuille initiale la colonne "Agrément" et "QTE"

(voir formules dynamiques dans Noms définis)

voilou !

Amicalement

Claude.

a resolu2

Bonsoir,

Alors j'ai essayé de me pencher sur le fichier et j'avoue que je ne comprends pas tout, mais c'est assez compliqué pour moi.

Alors je m'explique sur l'utilisation et le pourquoi du comment de ce fichier. En fait, j'ai un fichier principal sur lequel j'écris des feux d'artifices. J'ai un onglet par ville dans ce fichier.

Mon but par la suite est d'extraire l'onglet de la ville vers un nouveau fichier dans lequel je fais un tri (les onglets que vous avez fait).

Tout ca est mis dans le fichier joint. Onglet 1, liste extraire de mon fichier dans lequel j'écris les plans de feu, onglet 2 et 3, onglets de tri.

J'ai tenté de changer le nom de l'onglet "Trappes CDF" par "Liste a trier" en changeant le nom de l'onglet ainsi que le nom dans la macro, mais j'obtiens des erreur de macro. J'imagine qu'il faut aussi changer dans les noms définis?

Par rapport au fichier que vous m'avez envoyé, il peut m'arriver d'avoir des listes bien plus longues, et je ne sais pas si votre fichier peut traiter des listes "interminables"

De plus, le tri par agrément est idéal, mais en fait je me retrouve avec des disparitions de produits du fait que, sous un même agrément, il peut m'arriver d'avoir plusieurs produits dont seulement la couleur change. Peut être possibilité de regrouper et additionner les produits si l'agrément ET le nom sont identiques.

Je vous remercie encore pour ce gros coup de pouce!

Cdlt

Yann

Bonjour le forum!

Merci à Claude pour cette explication très claire. Cette macro va me rendre également beaucoup de services.

Seul petit point d'interrogation :

le calcul fait en colonne H ne semble pas correspondre à G*F

Ai-je mal compris?

Bonne journée à tous

Fabienne

Bonjour à tous,

je me retrouve avec des disparitions de produits du fait que, sous un même agrément, il peut m'arriver d'avoir plusieurs produits dont seulement la couleur change.

C'est que ta base de données est mal faite ! un produit = une référence (ou ici agrément),

règle 1 d'une BDD, sinon c'est du bricolage !

Fabienne,

tu remarqueras que la colonne quantité est déplacée dans la feuille "Extrait"

Amicalement

Claude

OK , merci Claude!

Je ne devais pas être bien réveillée...

Bonne journée

Fabienne

Merci pour toutes ces indications Claude. Je me suis penché sur la macro et la feuille, et je pense avoir avancé "sainement".

Pour les agréments, malheureusement cela ne dépends pas de moi mais des fabricants.

Ainsi, il arrive qu'ils demandent un agrément pour un produit mais l'utilisent pour 2 voire parfois pour plusieurs produits de même base, mais dont la couleur change. Je peux bien entendu rajouter des "codes couleur" dans les agréments qui présentent ce cas la, mais le problème c'est que ce document me sert de base de document légal, et que si je fais cela, les agréments avec codes couleur seront faux car non existants.

Pour le nom de la feuille, j'avais fait une mauvaise manip, j'ai réussi.

Je vais essayer d'avancer un peu, je voudrais murir et me servir de votre base pour aller plus loin dans l'allègement de mes tâches.

Bonjour,

Pour les agréments, malheureusement cela ne dépends pas de moi mais des fabricants.

Rien ne t'empêche de te créer une "Référence interne" sur une autre colonne,

tu dois rester ferme sur ce point : un article = une référence

sinon c'est le souk !

Amicalement

Claude

Bonsoir,

En fait, j'ai changé le tri, il ne porte plus au final sur les agréments, mais sur les désignations. J'avais essayé de mettre 2 variables dans le tri, mais n'étant que très peu performant en programmation, j 'ai abandonné... (pour info, j'avais mis dans la partie tri :

Range("a5:h" & Lg).Sort Key1:=Range("e6"), Order1:=xlAscending, _

Header:=xlYes, OrderCustom:=1, MatchCase:=False

Range("j2") = "=$b6<>$b7 & $e6<>$e7"

Range("a5:h" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _

"j1:j2"), CopyToRange:=Range("Trié!a5:f5"), Unique:=True

J'ai changé aussi les noms des onglets, rien de bien dur au final.

Par contre, j'ai remarqué que quand j'ai voulu trié, a chaque fois, la macro efface une ligne.... dans le doute, j'ai réessayé avec le fichier que Claude m'a envoyé. Pareil...meme problème, avec 3 lignes ou 40, dès que je tri avec la macro, j'ai un produit qui disparait... j'ai rajouté le fichier pour illustrer dans le message

Je vous demande votre aide de nouveau pour le coup car la, cela me dépasse, je ne trouve pas la panne...

A bientot

Bonjour Yann,forum,

Exact, je n'avais jamais fais attention à çà, merci pour l'info,

il faut ajouter une ligne à la plage à filtrer (.Row + 1),

en fait c'est logique, puisque le critère compare une ligne avec la suivante ("=$b6<>$b7" )

donc ici la dernière ligne n'était pas comparable !

Tu remarqueras que la colonne doit être triée (clé:Range("b6") au lieu de Range("e6")

----------- ce qui donne ------------

    ActiveSheet.Name = "bibi"
    Lg = Range("A65536").End(xlUp).Row + 1
        '--- tri et extrait sans doublons agrément ---
    Range("a5:h" & Lg).Sort Key1:=Range("b6"), Order1:=xlAscending, _
    Header:=xlYes, OrderCustom:=1, MatchCase:=False
    Range("j2") = "=$b6<>$b7"

Le reste est inchangé

Bonne journée

Claude

Merci bcp!!

Je continue dans ma quête d'allègement de mon travail en refaisant une macro qui me trie la feuille plan de feu, et qui me la copie et colle automatiquement dans la feuille A trier..

Merci encore en tout cas a toi!!!

C'est un autre sujet, pour fermer celui-ci c'est ici

a resolu2

Bonjour à tous,

Après qques tests et qques essais sur des projets en cours, je bugge sur une erreur dans mon fichier....

En fait, j'ai fait une première macro qui me coupe et qui me trie mes feuilles excel qui seront a concaténer avec la macro de Claude.

la première macro marche, il me faut juste la reprendre pour qu'elle soit un peu mieux.

Par contre, dès que je lance la macro de Claude, je me retrouve avec les colonnes Qté total et Actif qui me marquent #REF!, et je ne trouve pas d'ou cela peut venir...

Si qqun a une idée ou une piste.

Bonne journée a tous

Yann

Bonjour à tous,

J'ai remis ton fichier d'équerre,

la feuille "Triée" ne sert plus à rien, je l'ai supprimée

à quoi te sert la feuille "PDF" ? et que voulais-tu faire avec le bouton "Tri PDF" ?

Dans la feuille "A trier", il ne faut pas supprimer les lignes mais effacer si besoin (à cause des noms/définis)

Amicalement

Claude

Oki merci encore une nouvelle fois.

La feuille PDF est un lien entre mon fichier qui me sert a ecrire les feux, et ce fichier qui existera pour chaque ville (un feu par ville). J'envoie l'onglet du feu de la ville dans le fichier que tu connais, et j'avais fait une macro que je vais refaire en mieux, qui supprimait et collait les produits pyro utilisé dans l'onglet A TRIER.

A bientot

Yann

-- 23 Mai 2010, 12:43 --

Bonjour a tous,

je reviens encore une fois car je me suis rendu compte d'une erreur de ma part a la base. J'ai essayé de rectifier, mais bien entendu, je n'y suis pas arrivé.

Dans ma feuille, je n'ai pas inclus les fournisseurs et les références. J'ai essayé de modifier la macro de Claude, mais les seuls résultats que j'ai réussi a avoir sont des erreurs.

Si je pouvais donc encore une fois me permettre de solliciter votre aide...

J'ai joint le fichier, la premiere feuille est ma base après le plan de feu, et le but serait de garder cette mise en page (nom, design, qté, ref, fournisseur etc...) jusque dans la feuille décla pyro.

Merci encore et encore

Yann

Bonjour à tous,

J'ai ajouté la macro qui copie la 1ère feuille dans "A trier"

Les 2 colonnes supplémentaires ne passent plus à l'impression,

à voir en paysage

Amicalement

Claude

Rechercher des sujets similaires à "fusionner additionner lignes"