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 SubMerci pour l'aide
Quelqu'un a une idée Svp
merci beaucoup d'avance