macro to alphabetize selected cells

viper

Active Member
Joined
Feb 15, 2002
Messages
382
I've tried recording a macro to see if I can get this without asking, I can get it to do some of the cells but not all of them. This is what I'm working on. I have a spreadsheet with employee names in merged Cells(A11:B22)(A11:B11) are merged and contain a name, then in column and cell (C11) I have a salary for that name. I've tried to select all cells (A11:C22) so that when they are alphabetized the salary will stay with name it goes with, but I get error saying that merged cells must be the same size. How can I alphabetize all the names along with their salary. I am also wanting to allow for the input of new names then re-alphabetizing for the new names as well. So if I have names A through W already alphabetized and I will be using a userform to input the new name and salary(which I know the code to use to insert the new row) but then if the name is C after it is inserted then all the names will need to be alphabetized for the new entry. Any ideas?
 

Excel Facts

How can you automate Excel?
Press Alt+F11 from Windows Excel to open the Visual Basic for Applications (VBA) editor.
Viper
I recommend you unmerge the cells if possible and separate the first and last names. (Use Data/Text to Columns) Create a UserForm with 3 text boxes and 2 command buttons. The following code will put the last name in column A starting in row 3, the first name in column B (row 3)and the salary in column C (also row 3). You must have headings at least in rows 1 and 2 for this to work.

Public Sub Show()
UserForm1.Show

End Sub

Private Sub CommandButton1_Click()
Range("B1").Select
Range("B1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = TextBox1
Range("A1").Select
Range("A1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = TextBox2
Range("C1").Select
Range("C1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = TextBox3
End Sub

To unload the user form use this.

Private Sub CommandButton2_Click()
Unload Me
End Sub

To sort the selection down to row 40 use this.

Sub Macro1()
' Macro1 Macro
Application.ScreenUpdating = False
Range("A3:C40").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("F1").Select
End Sub

Good luck
 
Upvote 0

Forum statistics

Threads
1,223,317
Messages
6,171,419
Members
452,402
Latest member
siduslevis

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