why show error couldn't set the list property when run the userform

Mussa

Board Regular
Joined
Jul 12, 2021
Messages
245
Office Version
  1. 2019
  2. 2010
Hi

this error causes me the headache sometimes the userform work without problem and somtimes shows "couldn't set the list property .invalid property array index" when run the userofrm in this line
VBA Code:
 ComboBox1.List = Sheets("BRANDS").Range("B2", Sheets("BRANDS").Range("B65536").End(xlUp)).Value
VBA Code:
Private Sub UserForm_Activate()
    ComboBox1.RowSource = ""
    ComboBox1.List = Sheets("BRANDS").Range("B2", Sheets("BRANDS").Range("B65536").End(xlUp)).Value

End Sub
can any body fix this error ,please?
 

Excel Facts

Format cells as time
Select range and press Ctrl+Shift+2 to format cells as time. (Shift 2 is the @ sign).
Why are you using 'ComboBox1.RowSource = ""'?
Why is this in the UserForm_Activate event?
Do you have the list filled out in combobox properties?
 
Upvote 0
Why are you using 'ComboBox1.RowSource = ""'?
it gives the same error
Why is this in the UserForm_Activate event?
because UserForm_Initialize() contains others codes I don't want ovarlap each other of them . maybe cause some errors
Do you have the list filled out in combobox properties?
surly no
 
Upvote 0
What are the steps?
Are you trying to populate the combobox after it has already been populated?
 
Upvote 0
should populate the combobox after run the userform, but I can't run the form because of this error.
seem to find out the problem after B2 is empty if I fill after B2 the error is gone . but how avoid this error if the after B2 is empty ?
 
Upvote 0
Do you have the list filled out in combobox properties?

surly no

Try this for me? (UNTESTED)

Replace

VBA Code:
ComboBox1.RowSource = ""
ComboBox1.List = Sheets("BRANDS").Range("B2", Sheets("BRANDS").Range("B65536").End(xlUp)).Value

with

VBA Code:
Dim ws As Worksheet
Dim LRow As Long
Dim rng As Range

Set ws = ThisWorkbook.Sheets("BRANDS")

With ws
    LRow = .Range("B" & .Rows.Count).End(xlUp).Row
 
    If LRow < 2 Then
        MsgBox "No data found"
        Exit Sub
    End If
 
    Set rng = .Range("B2:B" & LRow)
 
    ComboBox1.List = rng.Value2
End With
 
Upvote 0
@Siddharth Rout thanks . your code works in one case if the B2 is empty but if the B2 contains item will show the same error in this line
VBA Code:
 ComboBox1.List = rng.Value2
 
Upvote 0
this is what I have in B2" BTR2300ttRR**/100-1"

ER.PNG
 
Upvote 0
Try this

VBA Code:
Dim ws As Worksheet
Dim LRow As Long
Dim rng As Range

Set ws = ThisWorkbook.Sheets("BRANDS")

With ws
    LRow = .Range("B" & .Rows.Count).End(xlUp).Row
 
    If LRow < 2 Then
        MsgBox "No data found"
        Exit Sub
    ElseIf LRow = 2 Then
        ComboBox1.AddItem .Range("B2").Value2
    Else
        Set rng = .Range("B2:B" & LRow)
        
        ComboBox1.List = rng.Value2
    End If
End With
 
Upvote 0
Solution

Forum statistics

Threads
1,215,637
Messages
6,125,964
Members
449,276
Latest member
surendra75

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top