Userform complexe

Bonjour tout le monde

Mon problème est le suivant:

A l'aide d'un Userform, j'essaie de faire apparaître l'ensemble des données saisies par l'utilisateur dans une autre feuille nommée -Database-.

Dans la Database, on trouve dans la colonne A, le mois suivi par le nom du produit et ensuite le numéro de produit qui est unique

Dans l'userform, le combobox (Recherche) doit contenir uniquement le numéro du produit.

Une fois le numero de sous produit selectionné, j'essaie de faire apparaître l'ensemble des données dans les textbox et les listbox au dessous puis de les modifier a l'aide d'un bouton -valider la modification- si necessaire

Ci-joint le fichier en question

Mon code ci- dessous me permets pas de voir l'ensemble des données saisies

Option Explicit

Dim f, ln, n, nomExclu, t, i, m, dico, Mdp

Private Sub ComboBox1_Change()
    ListBox13.Clear
    MultiPage1.Value = 0
    For ln = 5 To f.Range("A" & Rows.Count).End(xlUp).Row
        If f.Range("A" & ln) = ComboBox1 Then

            For i = 1 To 564
                For n = 1 To 12
                    m = Choose(n, "Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
                    If f.Range("A" & ln).Offset(-i, 0) = m Then
                        ListBox13.AddItem m
                        ListBox13.ListIndex = 0
                        GoTo suite
                    End If
                Next n
            Next i
        End If
suite:
    Next ln
    TextBox95 = ComboBox1
End Sub

Private Sub CommandButton2_Click()
Mdp = Application.InputBox("Mot de passe", "Entrer le mot de passe")
If Mdp <> "pat" Then
 MsgBox "Mot de passe incorrect", vbCritical
Exit Sub
End If
        f = "Database"
    ln = f.Range("A5:A" & f.Range("A" & Rows.Count).End(xlUp).Row).Find(ListBox13, lookat:=xlWhole).Row
    ln = f.Range("A" & ln + 1 & ":A" & f.Range("A" & Rows.Count).End(xlUp).Row).Find(ComboBox1, lookat:=xlWhole).Row

       Sheets(f).Range("A" & ln) = ComboBox1
        Sheets(f).Range("B" & ln) = TextBox45
          Sheets(f).Range("C" & ln) = TextBox43
              Sheets(f).Range("D" & ln) = TextBox44

    Unload UserForm7
    UserForm7.ComboBox1.SetFocus
    UserForm7.Show
End Sub

Private Sub affecter_Click()

    ln = f.Range("A5:A" & f.Range("A" & Rows.Count).End(xlUp).Row).Find(ListBox13, lookat:=xlWhole).Row
    ln = f.Range("A" & ln + 1 & ":A" & f.Range("A" & Rows.Count).End(xlUp).Row).Find(ComboBox1, lookat:=xlWhole).Row
    TextBox95 = Sheets(f).Range("A" & ln)
    TextBox45 = Sheets(f).Range("B" & ln)
    TextBox43 = Sheets(f).Range("C" & ln)
    TextBox44 = Sheets(f).Range("D" & ln)
End Sub

Private Sub UserForm_Initialize()

    Set f = Sheets("Database")
    Set dico = CreateObject("Scripting.Dictionary")

    For ln = 5 To f.Range("A" & Rows.Count).End(xlUp).Row
        t = 0
        For n = 1 To 16
            nomExclu = Choose(n, "Produit A", "Produit B", "Produit C", "Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
            If f.Range("A" & ln) = nomExclu Then
                t = 1
            End If
        Next n
        If t = 0 Then
            dico(f.Range("A" & ln).Value) = ""
        End If
        ComboBox1.List = dico.keys
    Next ln
End Sub

Merci pour l'aide

56v1.xlsm (44.67 Ko)

Quelqu'un a une idée Svp

merci beaucoup d'avance

Rechercher des sujets similaires à "userform complexe"