Tri tableau avec Userform

Bonjour,

Je suis a la recherche d'un code en VBA qui pourrais me simplifier la vie énormément.

Je m'explique:

J'ai une base de données sortie de SAP et j'ai besoin de récupérer certaine données du tableau en fonction d'un N° de BL

Mais au niveau du Code de UserForm je suis perdu....

Si quelqu'un à une idée je suis preneur.

J'ai des débuts de code trouvé sur le Forum mais pas d'annotations je ne comprend pas le code...:

Option Explicit

Dim dico, nbLn, f, c, i, j, k, tablof, tablo(), tabloR

Private Sub ComboBox1_Change()

    nbLn = 0
    For Each f In Worksheets
        tablof = f.Range("B2:D" & f.Range("B1").CurrentRegion.Rows.Count)
            For i = 1 To UBound(tablof, 1)
                ReDim Preserve tablo(5, nbLn + 1)
                For j = 1 To 3
                    tablo(j - 1, nbLn) = tablof(i, j)
                Next j
                tablo(3, nbLn) = f.Name
                tablo(4, nbLn) = i + 1

                nbLn = nbLn + 1
            Next i
        Erase tablof
    Next f

    ReDim tabloR(UBound(tablo, 2), UBound(tablo, 1))
    tabloR = Application.Transpose(tablo)

    For i = 1 To UBound(tabloR, 1)
        For j = 1 To 3
            If tabloR(i, j) = ComboBox1 Then
                ListBox1.AddItem
                For k = 0 To 4
                    ListBox1.Column(k, ListBox1.ListCount - 1) = tabloR(i, k + 1)
                Next k
            End If
        Next j
    Next i
End Sub

Private Sub CommandButton1_Click()
    Unload Me
End Sub

Private Sub Label2_Click()

End Sub

Private Sub ListBox1_Click()

End Sub

Private Sub UserForm_initialize()

    ListBox1.ColumnCount = 5
    Set dico = CreateObject("Scripting.Dictionary")
    nbLn = 0
    For Each f In Worksheets
        tablof = f.Range("B2:D" & f.Range("B1").CurrentRegion.Rows.Count)
            For i = 1 To UBound(tablof, 1)
                ReDim Preserve tablo(5, nbLn + 1)
                For j = 1 To 3
                    tablo(j - 1, nbLn) = tablof(i, j)
                Next j
                tablo(3, nbLn) = f.Name
                tablo(4, nbLn) = i
                nbLn = nbLn + 1
            Next i
        For Each c In f.Range("B1").CurrentRegion.Offset(1, 1).SpecialCells(xlCellTypeConstants, 23)
            If c.Value <> "" Then
                dico(c.Value) = ""
            End If
        Next c
        Erase tablof
    Next f
    ComboBox1.List = Application.Transpose(dico.keys)
End Sub

Sinon Sans UserForm il aurais une solution de tri avec des liens VBA ? dans le fichier ci -joint :

je clique sur le N° BL dans la feuille "Exmple1"(je l'ais mis en rouge pour exemple) et cela me revoie au tableau de la base de données SAP en faisant le tri avec tous les mêmes numéros de BL, cela me semble possible. Si quelqu'un a un début de code sur lequel je pourrais travailler je suis preneur.

Cordialement !

Bonjour,

Avec Userform

Ceuzin

Bonjour,

Merci de la réponse je le met a ma sauce et je link le résultat pour les intéressés plus tard

Votre site est dans mes favoris maintenant

Rechercher des sujets similaires à "tri tableau userform"