Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() rearrange cells based on its numerical values without repeating -------------------------------------------------------------------------------- with this sub Sub doit() Range("M1").CurrentRegion.ClearContents Range("A1").Resize(10, 2).Copy Destination:=Range("M1") Range("M1").CurrentRegion.Sort Key1:=Range("M1"), Order1:=xlAscending End Sub it works but i dont want to repeat the numbers i mean if i input 1 microsoft 2 intel 1 microsoft the results will be 1 1 2 i dont want that i want only 1 2 no repeating how can i do that? noting that the input my be so long may be 1000 rows but they are only 50 companies (from 1 to 50) so the results will be in a max 50 rows and i want that code to activate(rerun) each time i enter the sheet2 how can i do that ?? -- amrezzat ------------------------------------------------------------------------ amrezzat's Profile: http://www.excelforum.com/member.php...o&userid=28766 View this thread: http://www.excelforum.com/showthread...hreadid=487039 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
This is some code I found at a Chip Pearson site dealing with duplicates. I
modified it to suit another purpose which is similar to what you are doing. It sorts the data in column A to make sure all the 1's 2's etc are together and then removes all but one and then sorts again to remove the blanks. Perhaps try on some test data and of course change the cell address to suit your data. Sub FixDuplicateRows() Dim RowNdx As Long Dim ColNum As Integer Dim LastRow As Long Dim DataRng As Range Dim i As Integer LastRow = Cells(Rows.Count, "A").End(xlUp).Row Set DataRng = Range("A2:A" & LastRow) DataRng.Select Application.ScreenUpdating = False Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal ' This is Chip's original code with this tiny mod ' Cells(RowNdx, ColNum).Value = "----" ColNum = Selection(1).Column For RowNdx = Selection(Selection.Cells.Count).Row To _ Selection(1).Row + 1 Step -1 If Cells(RowNdx, ColNum).Value = Cells(RowNdx - 1, ColNum).Value Then Cells(RowNdx, ColNum).Value = "" End If Next RowNdx ' End of Chip's code Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Range("A2").Select Application.ScreenUpdating = True End Sub HTH Regards, Howard "amrezzat" wrote in message ... rearrange cells based on its numerical values without repeating -------------------------------------------------------------------------------- with this sub Sub doit() Range("M1").CurrentRegion.ClearContents Range("A1").Resize(10, 2).Copy Destination:=Range("M1") Range("M1").CurrentRegion.Sort Key1:=Range("M1"), Order1:=xlAscending End Sub it works but i dont want to repeat the numbers i mean if i input 1 microsoft 2 intel 1 microsoft the results will be 1 1 2 i dont want that i want only 1 2 no repeating how can i do that? noting that the input my be so long may be 1000 rows but they are only 50 companies (from 1 to 50) so the results will be in a max 50 rows and i want that code to activate(rerun) each time i enter the sheet2 how can i do that ?? -- amrezzat ------------------------------------------------------------------------ amrezzat's Profile: http://www.excelforum.com/member.php...o&userid=28766 View this thread: http://www.excelforum.com/showthread...hreadid=487039 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() it works on an empty sheet but on my original sheet an error message "application-defined or object-defined error" and all values in and formuals in the sheet are erased and whn i come back to vba editor another message appears "sort method of class failed" how can i solve that problem? attachement a picture of my sheet +-------------------------------------------------------------------+ |Filename: Image1.jpg | |Download: http://www.excelforum.com/attachment.php?postid=4054 | +-------------------------------------------------------------------+ -- amrezzat ------------------------------------------------------------------------ amrezzat's Profile: http://www.excelforum.com/member.php...o&userid=28766 View this thread: http://www.excelforum.com/showthread...hreadid=487039 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I am not able to access the picture of the worksheet for some reason. Can't
say why it works on a new worksheet and not on your original. Regards, Howard "amrezzat" wrote in message ... rearrange cells based on its numerical values without repeating -------------------------------------------------------------------------------- with this sub Sub doit() Range("M1").CurrentRegion.ClearContents Range("A1").Resize(10, 2).Copy Destination:=Range("M1") Range("M1").CurrentRegion.Sort Key1:=Range("M1"), Order1:=xlAscending End Sub it works but i dont want to repeat the numbers i mean if i input 1 microsoft 2 intel 1 microsoft the results will be 1 1 2 i dont want that i want only 1 2 no repeating how can i do that? noting that the input my be so long may be 1000 rows but they are only 50 companies (from 1 to 50) so the results will be in a max 50 rows and i want that code to activate(rerun) each time i enter the sheet2 how can i do that ?? -- amrezzat ------------------------------------------------------------------------ amrezzat's Profile: http://www.excelforum.com/member.php...o&userid=28766 View this thread: http://www.excelforum.com/showthread...hreadid=487039 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Changing numerical values based upper and lower range | Excel Discussion (Misc queries) | |||
How to produce a chart based on number of cells not values in thecells | Charts and Charting in Excel | |||
Adding numerical values based on multiple values in another column | Excel Worksheet Functions | |||
help me on rearrange cells based on its numerical values without repeating any number | Excel Worksheet Functions | |||
Return Range of Numerical Values in Single Column based on Frequency Percentage | Excel Worksheet Functions |