Aide pour tri

Bonjour à tous,

N'étant pas encore très à l'aise avec la programmation en VBA, je me permet de venir vers vous et votre expérience pour pouvoir résoudre mon problème.

J'ai un fichier (voir pièce jointe) dans lequel j'ai déjà une ligne de code VBA mais j'aimerais la pousser un peu plus loin. Lorsque j'appuie sur mon bouton TRI, ma ligne de code VBA me met en une seule ligne, s'il y en a plusieurs, et m'additionne la quantité de ma référence de mon article.

Mais j'aimerais, s'il y a plusieurs fois la même référence mais que dans la colonne J, la localisation n'est pas la même, qu'il m'additionne les quantités mais s'il y a 2 localisations différentes, qu'il me laisse bien en localisation différente.

Je ne sais pas si j'ai étais bien clair, en l'espèrant, si besoin je suis disponible

Je te tiens à vous remercier d'avance,

Cordialement

Un amateur en VBA

Bonjour,

Pq du VBA quand un TCD peut le faire

nb: il est préférable de mettre le TCD sur un autre onglet

P.

Car j'aimerais que ça reste sur le même fichier et que ça soit plus facilement lisible.

Merci

Car j'aimerais que ça reste sur le même fichier et que ça soit plus facilement lisible.

Merci

Comme tu veux , mais le TCD est plus souple

Bonsoir patrick1957, dorierl

Comme ceci :

Restitution dans la feuille placée en 2ème position dans ton classeur

Option Explicit
Sub test()
Dim a, w(), i As Long, j As Long, n As Long, e, v, dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    With Sheets("Liste des composant").Range("A9").CurrentRegion
        a = .Value
        For i = 2 To UBound(a, 1)
            If Not dico.exists(a(i, 2)) Then
                Set dico(a(i, 2)) = _
                CreateObject("Scripting.Dictionary")
                dico(a(i, 2)).CompareMode = 1
            End If
            If Not dico(a(i, 2)).exists(a(i, 10)) Then
                ReDim w(1 To UBound(a, 2))
                For j = 1 To UBound(a, 2)
                    w(j) = a(i, j)
                Next
                dico(a(i, 2))(a(i, 10)) = w
            Else
                w = dico(a(i, 2))(a(i, 10))
                w(4) = w(4) + a(i, 4)
                dico(a(i, 2))(a(i, 10)) = w
            End If
        Next
        Application.ScreenUpdating = False
        With Sheets(2).Cells(1)
            .CurrentRegion.Clear
            With .Resize(1, UBound(a, 2))
                .Value = a: n = 1
                For Each e In dico
                    For Each v In dico(e)
                        .Offset(n).Value = dico(e)(v)
                        n = n + 1
                    Next
                Next
            End With
            With .CurrentRegion
                With .Font
                    .Name = "calibri"
                    .Size = 10
                End With
                .VerticalAlignment = xlCenter
                .Borders(xlInsideVertical).Weight = xlThin
                .BorderAround Weight:=xlThin
                With .Rows(1)
                    .Font.Size = 11
                    .Interior.ColorIndex = 46
                    .BorderAround Weight:=xlThin
                End With
                .Columns.AutoFit
            End With
            .Parent.Activate
        End With
        Set dico = Nothing
    End With
    Application.ScreenUpdating = True
End Sub

klin89

Merci Klin89,

Te serait-il possible de me l’intégrer dans ma ligne de code VBA car quand je la met, je suppose que je ne l'intègre pas au bonne endroit et ça me met des messages d'erreur.

Encore merci

Bonjour,

Quelqu'un pour m'aider svp ?

Merci d'avance

Bonjour,

Si tu veux inclure le code de Klin89, tu peux faire comme dans ton code existant, c'est à dire un "call" test (test étant le nom de la sub écrite par klin)

P.

Rechercher des sujets similaires à "aide tri"