ipbr21054
Well-known Member
- Joined
- Nov 16, 2010
- Messages
- 5,226
- Office Version
- 2007
- Platform
- Windows
Morning,
I have a ComboBox on a userform which i am trying to sort the list within to A-Z
The worksheet is called POSTAGE
The userform is called SearchAndFindPostage
The commandbutton is called ComboBoxFind.
The column to sort is C
The range is C9:C
I understand the code in question copies the values from the range mentioned,then pastes them in an unused column.
The column of vales are then sorted A_Z & then these sorted values are loasded into the ComboBox.
Now my ComboBox list is in the A-Z order that i require.
My problem is that on the same worksheet i have another userform which already does the same process using the UserForm Initialize event.
Can you advise how i then sort this new userform to do the same thing.
The code for the current working userfrom is shown below.
I have a ComboBox on a userform which i am trying to sort the list within to A-Z
The worksheet is called POSTAGE
The userform is called SearchAndFindPostage
The commandbutton is called ComboBoxFind.
The column to sort is C
The range is C9:C
I understand the code in question copies the values from the range mentioned,then pastes them in an unused column.
The column of vales are then sorted A_Z & then these sorted values are loasded into the ComboBox.
Now my ComboBox list is in the A-Z order that i require.
My problem is that on the same worksheet i have another userform which already does the same process using the UserForm Initialize event.
Can you advise how i then sort this new userform to do the same thing.
The code for the current working userfrom is shown below.
VBA Code:
Private Sub UserForm_Initialize()
Dim cl As Range, rng As Range, lstrw As Long, LastRow As Long, Lastrowa As Long, cntr As Integer
TextBox2.SetFocus
Application.ScreenUpdating = False
LastRow = Sheets("POSTAGE").Cells(Rows.Count, "B").End(xlUp).Row
Sheets("POSTAGE").Cells(8, 2).Resize(LastRow - 7).Copy Sheets("POSTAGE").Cells(1, 12)
Lastrowa = Sheets("POSTAGE").Cells(Rows.Count, "L").End(xlUp).Row
Sheets("POSTAGE").Cells(1, 12).Resize(Lastrowa).Sort key1:=Cells(1, 12).Resize(Lastrowa), order1:=xlAscending, Header:=xlNo
CustomerSearchBox.List = Sheets("POSTAGE").Cells(1, 12).Resize(Lastrowa).Value
Sheets("POSTAGE").Cells(1, 12).Resize(Lastrowa).Clear
cntr = 1
With Sheets("POSTAGE")
lstrw = .Range("B65536").End(xlUp).Row
Set rng = .Range("B8:B" & lstrw)
For Each cl In rng
If cl.Offset(0, 5).Value = "" Then Sheets("POSTAGE").Range("L" & cntr).Value = cl.Value: cntr = cntr + 1
If cl.Offset(0, 5).Value = "POSTED" Then Sheets("POSTAGE").Range("L" & cntr).Value = cl.Value: cntr = cntr + 1 '<--- added this line
Next
If cntr = 1 Then
MsgBox "ALL PARCELS HAVE NOW BEEN DELIVERED ", vbExclamation, "POSTAGE SHEET DATE TRANSFER MESSAGE"
Unload PostageTransferSheet
ElseIf cntr = 2 Then
NameForDateEntryBox.AddItem .Range("L1").Value
Else
.Range("L1:L" & cntr - 1).Sort key1:=.Range("L1"), order1:=xlAscending, Header:=xlNo
NameForDateEntryBox.List = .Range("L1:L" & cntr - 1).Value
NameForDateEntryBox.List = Sheets("POSTAGE").Cells(1, 12).Resize(Lastrowa).Value
'.Range("L1:L" & cntr - 1).Clear '<----- commented out this line
TextBox2.SetFocus
End If
End With
Dim l As MSForms.ComboBox
Dim i As Long: i = 0
Set l = Me.NameForDateEntryBox
While i < l.ListCount
If "" = l.List(i, 0) Then: l.RemoveItem (i): Else i = 1 + i
Wend
Application.ScreenUpdating = True
TextBox1.Value = Format(CDbl(Date), "dd/mm/yyyy")
TextBox7.Value = Format(CDbl(Date), "dd/mm/yyyy")
End Sub