Re : Evênement change sur ComboBox
Bonjour à tous,
J'espère que vous allez bien...^_^
Moi, je suis assez débutant en ce qui concerne la prog. et en particulier en vba...
Je suis entrain de mettre au point une facturation automatisée. et depuis au moins une semaine, je fais face à un petit frein... enfin, dû au manque de connaissance.
grosso-modo, je dois déclarer 26 ComboBox dans INITIALISATION ...jusqu'à là pas de souci, avec une boucle "For" et le tour et joué. Mais en ce qui concerne "Private Sub ComboBox_Change()" là je bloque.... bien sur facile de déclarer les combobox une à une , mais on se retrouver très vite dépassant la 500 ième ligne
ma question, est-il possible de créer une boucle/procédure pour pour remplir mes différentes combobox sans avoir à recopier la même chose 26 fois...ça serait bête et surchargerait mon fichier pour rien.
MERCI d'avance.
extrait du code :
Private Sub ComboBox1_Change()
Dim ligne As Long
Dim i
i = 1
If Me.Controls("Combobox" & i).ListIndex = -1 Then Exit Sub
ligne = Me.Controls("Combobox" & i).ListIndex + 2
If Me.Controls("Combobox" & i) = "BARRE" Then
Me.Controls("Combobox" & i + 100).Visible = True
Me.Controls("TextBox" & i + 150).Visible = True
Me.Controls("TextBox" & i + 200).Visible = False
Me.Controls("TextBox" & i + 250).Visible = True
Me.Controls("TextBox" & i + 350).Visible = True
Me.Controls("TextBox" & i + 400).Visible = True
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Me.Controls("TextBox" & i + 150) = Ws3.Cells(ligne, 2)
Else
If Me.Controls("Combobox" & i) = "CREED" Then
Me.Controls("Combobox" & i + 100).Visible = False
Me.Controls("TextBox" & i + 150).Visible = False
Me.Controls("TextBox" & i + 200).Visible = False
Me.Controls("TextBox" & i + 250).Visible = False
Me.Controls("TextBox" & i + 350).Visible = False
Me.Controls("TextBox" & i + 400).Visible = False
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Else
If Me.Controls("Combobox" & i) = "ASSEMB" Then
Me.Controls("Combobox" & i + 100).Visible = False
Me.Controls("TextBox" & i + 150).Visible = False
Me.Controls("TextBox" & i + 200).Visible = True
Me.Controls("TextBox" & i + 250).Visible = True
Me.Controls("TextBox" & i + 350).Visible = False
Me.Controls("TextBox" & i + 400).Visible = False
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Else
Me.Controls("Combobox" & i + 100).Visible = True
Me.Controls("TextBox" & i + 150).Visible = True
Me.Controls("TextBox" & i + 200).Visible = True
Me.Controls("TextBox" & i + 250).Visible = True
Me.Controls("TextBox" & i + 350).Visible = True
Me.Controls("TextBox" & i + 400).Visible = True
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Me.Controls("TextBox" & i + 150) = Ws3.Cells(ligne, 2)
End If
End If
End If
End Sub
Private Sub ComboBox2_Change()
Dim ligne As Long
Dim i
i = 2
If Me.Controls("Combobox" & i).ListIndex = -1 Then Exit Sub
ligne = Me.Controls("Combobox" & i).ListIndex + 2
If Me.Controls("Combobox" & i) = "BARRE" Then
Me.Controls("Combobox" & i + 100).Visible = True
Me.Controls("TextBox" & i + 150).Visible = True
Me.Controls("TextBox" & i + 200).Visible = False
Me.Controls("TextBox" & i + 250).Visible = True
Me.Controls("TextBox" & i + 350).Visible = True
Me.Controls("TextBox" & i + 400).Visible = True
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Me.Controls("TextBox" & i + 150) = Ws3.Cells(ligne, 2)
Else
If Me.Controls("Combobox" & i) = "CREED" Then
Me.Controls("Combobox" & i + 100).Visible = False
Me.Controls("TextBox" & i + 150).Visible = False
Me.Controls("TextBox" & i + 200).Visible = False
Me.Controls("TextBox" & i + 250).Visible = False
Me.Controls("TextBox" & i + 350).Visible = False
Me.Controls("TextBox" & i + 400).Visible = False
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Else
If Me.Controls("Combobox" & i) = "ASSEMB" Then
Me.Controls("Combobox" & i + 100).Visible = False
Me.Controls("TextBox" & i + 150).Visible = False
Me.Controls("TextBox" & i + 200).Visible = True
Me.Controls("TextBox" & i + 250).Visible = True
Me.Controls("TextBox" & i + 350).Visible = False
Me.Controls("TextBox" & i + 400).Visible = False
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Else
Me.Controls("Combobox" & i + 100).Visible = True
Me.Controls("TextBox" & i + 150).Visible = True
Me.Controls("TextBox" & i + 200).Visible = True
Me.Controls("TextBox" & i + 250).Visible = True
Me.Controls("TextBox" & i + 350).Visible = True
Me.Controls("TextBox" & i + 400).Visible = True
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Me.Controls("TextBox" & i + 150) = Ws3.Cells(ligne, 2)
End If
End If
End If
End Sub
Private Sub ComboBox3_Change()
Dim ligne As Long
Dim i
i = 3
If Me.Controls("Combobox" & i).ListIndex = -1 Then Exit Sub
ligne = Me.Controls("Combobox" & i).ListIndex + 2
If Me.Controls("Combobox" & i) = "BARRE" Then
Me.Controls("Combobox" & i + 100).Visible = True
Me.Controls("TextBox" & i + 150).Visible = True
Me.Controls("TextBox" & i + 200).Visible = False
Me.Controls("TextBox" & i + 250).Visible = True
Me.Controls("TextBox" & i + 350).Visible = True
Me.Controls("TextBox" & i + 400).Visible = True
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Me.Controls("TextBox" & i + 150) = Ws3.Cells(ligne, 2)
Else
If Me.Controls("Combobox" & i) = "CREED" Then
Me.Controls("Combobox" & i + 100).Visible = False
Me.Controls("TextBox" & i + 150).Visible = False
Me.Controls("TextBox" & i + 200).Visible = False
Me.Controls("TextBox" & i + 250).Visible = False
Me.Controls("TextBox" & i + 350).Visible = False
Me.Controls("TextBox" & i + 400).Visible = False
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Else
If Me.Controls("Combobox" & i) = "ASSEMB" Then
Me.Controls("Combobox" & i + 100).Visible = False
Me.Controls("TextBox" & i + 150).Visible = False
Me.Controls("TextBox" & i + 200).Visible = True
Me.Controls("TextBox" & i + 250).Visible = True
Me.Controls("TextBox" & i + 350).Visible = False
Me.Controls("TextBox" & i + 400).Visible = False
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Else
Me.Controls("Combobox" & i + 100).Visible = True
Me.Controls("TextBox" & i + 150).Visible = True
Me.Controls("TextBox" & i + 200).Visible = True
Me.Controls("TextBox" & i + 250).Visible = True
Me.Controls("TextBox" & i + 350).Visible = True
Me.Controls("TextBox" & i + 400).Visible = True
Me.Controls("TextBox" & i + 100) = Ws3.Cells(ligne, 3)
Me.Controls("TextBox" & i + 150) = Ws3.Cells(ligne, 2)
End If
End If
End If
End Sub