Excel 2003 fusion conditionnelle de celules

Bonjour,

j'ai à disposition 4 colonnes : dans A un code produit(fixe) (ex : 0300845) dans B un libelle de produit qui change partiellement (ex: paracetamol 1g et paracétamol 1g bt 30), danc C les prix (en majorité fixe mais pas toujours...) et dans D la quantité.

et j'ai une ligne par libellé de produit.

Ce que je voudrais c'est une ligne par code produit du même prix, en faisant la somme des quantitées et si le prix change, garder deux lignes différentes.

Ex:

0123 paracetamol 1g 0.12 euros 150

0123 paracétamol 1g bt 30 0.12 euros 150

donne :

0123 paracétamol 1g 0.12 euros 300

ou

0123 dafalgan =paracétamol 1g 0.12 euros 150

0123 paracétamol 1g bt 30 0.12 euros 150

donne :

0123 dafalgan 0.12 euros 300

ou encore

0123 paracetamol 1g 0.30 euros 150

0123 paracétamol 1g bt 30 0.12 euros 150

donne :

0123 paracetamol 1g 0.30 euros 150

0123 paracétamol 1g bt 30 0.12 euros 150

et voici mon fichier en pièce jointe

voilà en vous remerciant pour votre aide

Bonjour,

Avant toute chose ... il faut éviter comme la peste ... de fusionner des cellules

Dans ton cas, il semble que la concaténation puisse être adéquate ( & )

Cela dit ... ton fichier n'a pas été joint ...

Selon toi il faudrait que je fasse un concaténage de la colonne A et B ?

112013.zip (96.90 Ko)

Re,

L'idéal dans ton cas ...est le tableau croisé dynamique ...

102013.zip (251.39 Ko)

ah ça à l'air pas mal ! Comment tu as fais ? Parce que j'ai celui de 2014 à faire aussi

72014.zip (94.18 Ko)

Re,

Je ne vais pas te mentir ... moins de 10 secondes ... avec le TCD ...

Un lien pour creuser le sujet : http://www.lecompagnon.info/excel/tableaucroise.htm

Re,

A titre de ... second exemple ...

Et ne pas oublier ...

82014.zip (242.88 Ko)

Bonsoir à tous,

Autre solution, à tester

Restitution en Feuil2

Option Explicit

Sub Fusion()
Dim dico As Object, txt As String, i As Long, a, w
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    With Sheets("Feuil1").Range("A1").CurrentRegion
        a = Application.Index(.Value, Evaluate("row(1:" & _
                                               .Rows.Count & ")"), Array(1, 2, 3, 4))
        For i = 2 To UBound(a, 1)
            txt = Join$(Array(a(i, 1), a(i, 3)))
            If Not dico.exists(txt) Then
                ReDim w(1 To 5)
                w(1) = a(i, 1)
                w(2) = a(i, 2)
                w(3) = a(i, 3)
                dico(txt) = w
            End If
            w = dico(txt)
            w(4) = w(4) + a(i, 4)
            w(5) = w(5) + 1
            dico(txt) = w
        Next
    End With
    'Restitution et mise en forme
    Application.ScreenUpdating = False
    With Sheets("Feuil2").Cells(1)
        .CurrentRegion.Clear
        .Resize(, 5).Value = [{"Code Produit","Libellé Produit","Prix Unitaire","Qté Livrée","Nbre Lignes"}]
        .Offset(1).Resize(dico.Count, 5).Value = _
        Application.Transpose(Application.Transpose(dico.items))
        With .CurrentRegion
            .Font.Name = "calibri"
            .Font.Size = 10
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .Borders(xlInsideVertical).Weight = xlThin
            .BorderAround Weight:=xlThin
            With .Rows(1)
                .Font.Size = 11
                .Interior.ColorIndex = 38
                .BorderAround Weight:=xlThin
            End With
            .Columns("d:e").HorizontalAlignment = xlRight
            .Columns.AutoFit
        End With
        .Parent.Activate
    End With
    Application.ScreenUpdating = True
End Sub

klin89

bonjour,

J'ai réussit grâce au TCD à faire ça, mais j'aimerai avoir la somme des quantités, sur la même ligne que les codes...

il me faudrait un mix entre le feuille 4 et la feuille 5....

SGA a écrit :

...il me faudrait un mix entre la feuille 4 et la feuille 5....

Re,

Comment allons-nous faire pour deviner les contenus respectifs de tes feuilles 4 & 5 ...???

Dans ton fichier ... il n'existe que la feuille 1 ...!!!

!!!!!

dsl mon fichier était trop gros je n'ai pas vu qu'il ne s'était pas envoyé

62013-exemple.zip (243.50 Ko)
Rechercher des sujets similaires à "2003 fusion conditionnelle celules"