J'essaie de réutiliser du code et donc de faire en sorte que les commandes dans une fonction appellent des résultats différents. Le problème semble être d'obtenir des références aux différents contrôleurs que je veux mettre à jour.Utilisation de commandes Excel VBA avec des variables
Function populate(num1, num2)
Dim index As Integer
index = ComboBox1.ListIndex
ComboBox2.Clear
Select Case index
Case Is = 0
With ComboBox2
ComboBox2.List = Worksheets("Sheet1").Range("A1:A10").Value
End With
Case Is = 1
With ComboBox2
ComboBox2.List = Worksheets("Sheet2").Range("A1:A10").Value
End With
Case Is = 2
With ComboBox2
ComboBox2.List = Worksheets("Sheet3").Range("A1:A10").Value
End With
End Select
End Function
Private Sub ComboBox1_Change()
Call populate(1, 2)
End Sub
Private Sub ComboBox3_Change()
Call populate(3, 4)
End Sub
Private Sub ComboBox5_Change()
Call populate(5, 6)
End Sub
Naturellement, pour chaque combobox que j'appelle (nombres impairs), il doit mettre à jour les valeurs du 2ème combobox (numéros pairs). Mais au lieu de copier le code sur chaque combobox impaire, je souhaite avoir une sorte de code qui est effectivement réutilisé par les appels de fonction comme indiqué ci-dessus.
Malheureusement, je ne suis pas sûr de la façon de faire fonctionner cela dans VBA. Inutile de dire que je voudrais que ce soit quelque chose comme (ce qui ne fonctionne pas):
Function populate(num1, num2)
Dim index As Integer
index = ComboBox + num1 + .ListIndex
ComboBox + num1 + .Clear
Select Case index
Case Is = 0
With ComboBox + num2
ComboBox + num2 + .List = Worksheets("Sheet1").Range("A1:A10").Value
End With
Case Is = 1
With ComboBox + num2
ComboBox + num2 + .List = Worksheets("Sheet2").Range("A1:A10").Value
End With
Case Is = 2
With ComboBox + num2
ComboBox + num2 + .List = Worksheets("Sheet3").Range("A1:A10").Value
End With
End Select
End Function
Il y avait également un regard sur la question dupliquée possible, difficile qui n'a pas résolu mon problème. En fait, même si le sujet semble dupique, je ne pense pas que la question soit. J'essaie de combiner une commande partielle et une variable afin de créer la commande que je veux utiliser, alors que le duplicata possible semble vouloir quelque chose de légèrement différent ... Je me trompe peut-être, mais c'est ce que j'ai ressenti.
double possible de [Excel Referencing Userform contrôle Nom Valeur partir d'une chaîne (VBA)] (http://stackoverflow.com/questions/24083717/reference-excel-userform-control-nom-valeur-de-chaîne-vba) – GSerg