Bonjour à tous
quand je lance userform que je clique sur la combobox1 Me trouve bien la liste des clients sans doublon ça alimente bien la 2e combobox en me mettant les bon N°facture du client
Le problème c'est que si je re sélectionne un autre client dans la combobox1 dans la 2 il y a toutes les factures qui apparaissent je suis donc obligé de refermer userform Et de le relancer
2e problème c'est quand je remplis la combobox3 et la textbos5 Et que je valide ça ne modifie pas la facture existante Ça me rajoute une ligne supplémentaire
Merci d'avance pour votre aide
quand je lance userform que je clique sur la combobox1 Me trouve bien la liste des clients sans doublon ça alimente bien la 2e combobox en me mettant les bon N°facture du client
Le problème c'est que si je re sélectionne un autre client dans la combobox1 dans la 2 il y a toutes les factures qui apparaissent je suis donc obligé de refermer userform Et de le relancer
2e problème c'est quand je remplis la combobox3 et la textbos5 Et que je valide ça ne modifie pas la facture existante Ça me rajoute une ligne supplémentaire
Merci d'avance pour votre aide
VB:
Option Explicit
Dim fbd, derLn, ln, dico1, dico2
Private Sub ComboBox1_Change()
ComboBox2.Clear
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
For ln = 2 To fbd.Range("A" & derLn).Row
If fbd.Range("C" & ln) = ComboBox1 Then
dico2(fbd.Range("A" & ln).Value) = ""
End If
Next ln
ComboBox2.List = Application.Transpose(dico2.keys)
End Sub
Private Sub ComboBox2_Change()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
For ln = 2 To fbd.Range("A" & derLn).Row
If fbd.Range("C" & ln) = ComboBox1 And fbd.Range("A" & ln) = ComboBox2 Then
TextBox1 = fbd.Range("K" & ln)
TextBox2 = fbd.Range("BN" & ln)
TextBox3 = fbd.Range("CP" & ln)
TextBox4 = fbd.Range("N" & ln)
End If
Next ln
End Sub
Private Sub CommandButton1_Click()
fbd.Range("N" & ln) = ComboBox3
fbd.Range("CP" & ln) = TextBox5
Unload Me
End Sub
Private Sub CommandButton2_Click()
FormCal.Show
End Sub
Private Sub UserForm_Initialize()
Set fbd = Sheets("Base facturation")
Set dico1 = CreateObject("Scripting.Dictionary")
Set dico2 = CreateObject("Scripting.Dictionary")
derLn = fbd.Range("C" & Rows.Count).End(xlUp).Row
For ln = 2 To derLn
dico1(fbd.Range("C" & ln).Value) = ""
Next ln
ComboBox1.List = Application.Transpose(dico1.keys)
ComboBox3.ColumnCount = 1
ComboBox3.List() = Array("", "Réglé", "Non Réglé")
End Sub
Dernière édition: