2017-01-24 2 views
0

versucht, einen Weg zum Auffüllen einer Combobox durch Lesen eines Bereichs zu finden und nur die Zellen, die einen gewissen Wert haben. Ich habe Code, der eine Schaltfläche in jeder Zeile in Spalte S erstellt, um ein Benutzerformular mit einer Combobox zu öffnen. in Spalte "H" von Zeile 5 nach unten, ich habe Zellen mit Farben gefüllt (Text) Mein Ziel ist, dass die Artikelliste der Combobox standardmäßig nicht den ersten Artikel aus dem Bereich (ab H5), sondern den entsprechenden Artikel aus anzeigt jede ZelleVBA Excel Combobox Elemente nach Zelle sortieren Wert und automatisch die entsprechende

Hier ist mein Stück Code für das ComboBox1 bevölkern:

Sub testingcombo() 

Dim c As Range 
Dim index As Integer 

ComboBox1.Clear 
index = ComboBox1.ListIndex 

With Worksheets("sheet1") 

For Each c In .Range(.Range("H5"), .Range("H" & .Rows.Count).End(xlUp)) 

If c.Value <> vbNullString Then ComboBox1.AddItem c.Value 

Next c 

End With 

Me.ComboBox1.ListIndex = 0 '(this only chooses by default the 1st entry of the range) 

Thks,

Edgar

Antwort

0

im Code mit den Tasten verbunden ist, schreiben Sie diesen (meinen Code nicht aussehen. here):

Public rs As Integer 

Sub MyButton() 
    Dim b As Object 
    Dim cs As Integer 
    Dim ss, ssv As String 
    Set b = ActiveSheet.Buttons(Application.Caller) 
    With b.TopLeftCell 
     rs = .Row 
     cs = .Column 
    End With 
    ss = Left(Cells(1, cs).Address(False, False), 1 - (ColNumber > 26)) & rs 
    ssv = Range(ss).Value 
    'MsgBox "Row Number " & rs & " Column Number " & cs & vbNewLine & _ 
    '"Cell " & ss & " Content " & ssv 

    UserForm1.Show 

End Sub 

Und dann in der Userform folgendermaßen aus:

Public Sub UserForm_Initialize() 

    Dim c As Range 
    Dim index As Integer 

    ComboBox1.Clear 
    index = ComboBox1.ListIndex 

    With Worksheets("sheet1") 

     For Each c In .Range(.Range("H5"), .Range("H" & .Rows.Count).End(xlUp)) 

      If c.Value <> vbNullString Then ComboBox1.AddItem c.Value 

     Next c 

    End With 

    Me.ComboBox1.ListIndex = rs - 5 
End Sub 
+0

schaffen Sie es einfach !! 1 Thks so viel CMArg jetzt zu testen !!!!! – EdN

+0

Gut zu helfen ... – CMArg

Verwandte Themen