Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'm getting some strange results from the macro. If I use the first
variable lngLastRow I get only 22 rows in my combo box. If I use the second varIABLE lngLastRow then I get 6. The strange thing is I have 30 rows in A,B and C in my sheet. So can you tell me what is wrong with my combox script? All I really want is row C in the combox list tia, patients.xls: A B C 1 fName Lname Fname &" "&Lname ,,,, 30 ------- Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = ThisWorkbook.Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng.Cells Me. ComboBox2.AddItem c.Value Next c Me.ComboBox2.AddItem "All" Me.ComboBox2.AddItem "Exit" End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I found the answer to this problem if anyone cares:-)
What happened is my code was correct but the user had locked some cells therefore it counted correctly up to those cells. thanks, On Jan 21, 12:15 pm, Janis R wrote: I'm getting some strange results from the macro. If I use the first variable lngLastRow I get only 22 rows in my combo box. If I use the second varIABLE lngLastRow then I get 6. The strange thing is I have 30 rows in A,B and C in my sheet. So can you tell me what is wrong with my combox script? All I really want is row C in the combox list tia, patients.xls: A B C 1 fName Lname Fname &" "&Lname ,,,, 30 ------- Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = ThisWorkbook.Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng.Cells Me. ComboBox2.AddItem c.Value Next c Me.ComboBox2.AddItem "All" Me.ComboBox2.AddItem "Exit" End Sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Try this
Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng If Not c Is Nothing Then ws.ComboBox2.AddItem c.Value End If Next c ws.ComboBox2.AddItem "All" ws.ComboBox2.AddItem "Exit" End Sub "Janis R" wrote: I'm getting some strange results from the macro. If I use the first variable lngLastRow I get only 22 rows in my combo box. If I use the second varIABLE lngLastRow then I get 6. The strange thing is I have 30 rows in A,B and C in my sheet. So can you tell me what is wrong with my combox script? All I really want is row C in the combox list tia, patients.xls: A B C 1 fName Lname Fname &" "&Lname ,,,, 30 ------- Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = ThisWorkbook.Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng.Cells Me. ComboBox2.AddItem c.Value Next c Me.ComboBox2.AddItem "All" Me.ComboBox2.AddItem "Exit" End Sub |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I will put that in the code. It looks like it just checks to make
sure the range is solidly filled? It is great for error checking. THANKS!! On Jan 22, 4:13 pm, JLGWhiz wrote: Try this Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng If Not c Is Nothing Then ws.ComboBox2.AddItem c.Value End If Next c ws.ComboBox2.AddItem "All" ws.ComboBox2.AddItem "Exit" End Sub "Janis R" wrote: I'm getting some strange results from the macro. If I use the first variable lngLastRow I get only 22 rows in my combo box. If I use the second varIABLE lngLastRow then I get 6. The strange thing is I have 30 rows in A,B and C in my sheet. So can you tell me what is wrong with my combox script? All I really want is row C in the combox list tia, patients.xls: A B C 1 fName Lname Fname &" "&Lname ,,,, 30 ------- Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = ThisWorkbook.Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng.Cells Me. ComboBox2.AddItem c.Value Next c Me.ComboBox2.AddItem "All" Me.ComboBox2.AddItem "Exit" End Sub that might not |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I was also really confused about the row counts. Thanks for taking
the time to explain the difference. On Jan 22, 5:32 pm, XL Programmer wrote: I will put that in the code. It looks like it just checks to make sure the range is solidly filled? It is great for error checking. THANKS!! On Jan 22, 4:13 pm, JLGWhiz wrote: Try this Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng If Not c Is Nothing Then ws.ComboBox2.AddItem c.Value End If Next c ws.ComboBox2.AddItem "All" ws.ComboBox2.AddItem "Exit" End Sub "Janis R" wrote: I'm getting some strange results from the macro. If I use the first variable lngLastRow I get only 22 rows in my combo box. If I use the second varIABLE lngLastRow then I get 6. The strange thing is I have 30 rows in A,B and C in my sheet. So can you tell me what is wrong with my combox script? All I really want is row C in the combox list tia, patients.xls: A B C 1 fName Lname Fname &" "&Lname ,,,, 30 ------- Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = ThisWorkbook.Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng.Cells Me. ComboBox2.AddItem c.Value Next c Me.ComboBox2.AddItem "All" Me.ComboBox2.AddItem "Exit" End Sub that might not I |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
It now makes sense, I am looking in a column for rows not in the sheet
for cells. thanks. It could have been part of the memory prob. On Jan 22, 4:13 pm, JLGWhiz wrote: Try this Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng If Not c Is Nothing Then ws.ComboBox2.AddItem c.Value End If Next c ws.ComboBox2.AddItem "All" ws.ComboBox2.AddItem "Exit" End Sub "Janis R" wrote: I'm getting some strange results from the macro. If I use the first variable lngLastRow I get only 22 rows in my combo box. If I use the second varIABLE lngLastRow then I get 6. The strange thing is I have 30 rows in A,B and C in my sheet. So can you tell me what is wrong with my combox script? All I really want is row C in the combox list tia, patients.xls: A B C 1 fName Lname Fname &" "&Lname ,,,, 30 ------- Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = ThisWorkbook.Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng.Cells Me. ComboBox2.AddItem c.Value Next c Me.ComboBox2.AddItem "All" Me.ComboBox2.AddItem "Exit" End Sub |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The following statment is only checking column "C"
'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Rows.Count = 65536, so this statment says to got to cells(65536,"c") and search upo until data is found This stement is using cells to indicat every cell in the worksheet lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row To change this to column C do the following lngLastRow = Columns("C:C").Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row "Janis R" wrote: I'm getting some strange results from the macro. If I use the first variable lngLastRow I get only 22 rows in my combo box. If I use the second varIABLE lngLastRow then I get 6. The strange thing is I have 30 rows in A,B and C in my sheet. So can you tell me what is wrong with my combox script? All I really want is row C in the combox list tia, patients.xls: A B C 1 fName Lname Fname &" "&Lname ,,,, 30 ------- Sub UserForm_Initialize() Dim lngLastRow As Long Dim ws As Worksheet Dim c As Range Dim rng As Range Set ws = ThisWorkbook.Worksheets("patients") lngLastRow = Cells.Find(What:="*", After:=ws.Range("C1"), _ SearchDirection:=xlPrevious).Row 'lngLastRow = Cells(Rows.Count, "c").End(xlUp).Row Set rng = ws.Range("C1:C" & lngLastRow) For Each c In rng.Cells Me. ComboBox2.AddItem c.Value Next c Me.ComboBox2.AddItem "All" Me.ComboBox2.AddItem "Exit" End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Data Validation - List - Setting Range from a macro | Excel Discussion (Misc queries) | |||
Y doens't this work? | Excel Programming | |||
HELP!!! Macro doens't run on clients maschine | Excel Programming | |||
Printing range on combox criteria? | Excel Programming | |||
setting a range using a named list in vba | Excel Programming |