Ajout d'éléments à une zone de liste modifiable qui est ajouté à l'objet userform au moment de l'exécution
Je suis en train d'ajouter une zone de liste déroulante d'un formulaire utilisateur qui sera créé au moment de l'exécution , le problème, je suis confronté consiste à ajouter des éléments à la liste déroulante de la boîte? Pas en mesure de savoir où l'erreur serait. Merci.
Function addComboBox(ByRef TempForm As Object, ByVal controlType As String,
ByVal pos As Integer, ByVal strCaption As String, ByVal strValues As String)
Dim NewComboBox As MSforms.ComboBox
Dim arr As Variant
Dim i As Integer
Set NewComboBox = TempForm.Designer.Controls.Add("forms.ComboBox.1")
arr = Split(strValues, ";")
With NewComboBox
.Name = strCaption & "_" & controlType & "_" & pos
.Top = 20 + (12 * pos)
.Left = 100
.Width = 150
.Height = 12
End With
For i = 0 To UBound(arr)
NewComboBox.AddItem arr(i)
Next i
End Function
- Une version simplifiée fonctionne pour moi et remplit la zone de liste déroulante. J'obtiens une erreur d'exécution sur le TempForm du "Concepteur" de la propriété et faut modifier la ligne de
Set NewComboBox = TempForm.Controls.Add("forms.ComboBox.1")
. J'ai tout qui fonctionne pour vous, sauf qu'il n'y a rien dans la zone de liste déroulante? Si oui, êtes-vous sûr arr est rempli? - Salut Doug, je suis capable de voir la zone de liste déroulante dans le formulaire, à l'exception des éléments aee renseigné, et j'ai vérifié que arr est remplie.
Vous devez vous connecter pour publier un commentaire.
Supprimer le mot Designer
Essayez ceci (Essayé Et Testé)
SUIVI
De l'essayer. (ESSAYÉ ET TESTÉ)
CAPTURE d'écran
PLUS SUIVI
Dans un tel scénario, vous devez vérifier si le
UserForm_Initialize
proc existe avant de l'analyser. Voir le code ci-dessous. J'ai ajouté un nouveau paramètre facultatifS
à votre fonction. Je l'utilise pour placer les combos de l'un en dessous de l'autre.CAPTURE d'écran (De l'objet Userform)
CAPTURE d'écran (De l'objet Userform Code)
ByRef TempForm As Object
dans la fonction?