2017-06-13 2 views
0

Je tente de remplir ma liste déroulante UserForm avec une liste de numéros de pièce après que l'utilisateur a sélectionné le poste de travail sur le formulaire utilisateur précédent.Remplissage d'une zone de liste déroulante avec une boucle For à partir de la feuille de calcul

Mon idée était de boucle à travers la colonne, identifier lorsque la chaîne correspond à la station de travail, puis ajoutez la cellule dans la colonne à droite (qui se révèle être le numéro de produit)

Mon code ressemble à ceci jusqu'à présent:

If station = "MILL" Then 
    With ComboBox1 
    .AddItem "350SC109e.1" 
    .AddItem "350 SC166" 
    .AddItem "350 SC193" 
    .AddItem "350 SC195" 
    End With 
End If 

If station = "BRAKE" Then 
    For i = 2 To ws1.Range("A265").End(xlUp).Row 
    If ws1.Cells(i, 1) = "Brake" Then 
     ComboBox1.AddItem ws1.Cells(i, 2) 
    End If 
    Next i 
End If 

Le MILL est un exemple de faire manuellement la chose que je veux accomplir avec la boucle dans l'instruction BRAKE if.

+0

ComboBox1.AddItem ws1.Cells (i, 2) .Value Comme est-il ressemble vous essayez d'ajouter une cellule à la zone de liste déroulante. –

+0

Alors qu'est-ce que je devrais écrire pour ajouter la valeur de la cellule à la liste déroulante, au lieu de la cellule elle-même? –

+0

bien c'est ma conjecture. vous n'avez pas fourni d'informations sur votre problème. Quelle (s) erreur (s) recevez-vous? –

Répondre

0

Ici, j'ai rapidement fait la démonstration de ce que je pouvais faire en boucle. Vous devrez cependant vous adapter à vos besoins. Il a fait un travail parfaitement

Private Sub CommandButton1_Click() 

    Dim txtVal As String 

    If IsNull(TextBox1.Value) = False Then 
     txtVal = TextBox1.Value 
    Else 
     txtVal = "" 
    End If 

    Dim rng As Range 
    Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A21") 
    Dim rcell As Range 

    For Each rcell In rng.Cells 
     If rcell.Value = txtVal Then 
      With ComboBox1 
       .AddItem rcell.Offset(0, 1).Value 
      End With 
     End If 
    Next rcell 

End Sub 
+0

Merci. Cela a vraiment aidé. Je l'ai au travail –