안녕하세요?
조건이 그렇다면 코드는 더 단순해 지고 쉽습니다.
최종 보시고자 하는 결과가 그러한 것이라면 코딩을 좀 수정하는게 좋겠습니다.
아래는 첨부파일에 사용된 코드입니다.
Option Explicit
Sub Test()
Dim i As Long
Dim S_i As Long
Dim n As Long
Dim Xr()
Dim Spl As Variant
Dim Rng As Range
Dim Rng2 As Range
Dim Opt As String
Application.ScreenUpdating = False
With Sheet1
For i = 1 To .Cells(Rows.Count, "c").End(xlUp).Row
If .Cells(i, "c") <> "" Then
Spl = Split(.Cells(i, "c"), ",")
For S_i = 0 To UBound(Spl, 1) - 1
n = n + 1
ReDim Preserve Xr(1 To n)
Xr(n) = Spl(S_i)
Next S_i
End If
Next i
End With
With Sheet3
.Range("a2:f1048576").Clear
.Range("a2").Resize(UBound(Xr, 1)).Value = Application.Transpose(Xr)
Set Rng = .Range(.Range("a2"), .Cells(Rows.Count, 1).End(xlUp))
.Columns("A").Copy .Columns("e")
.Columns("e").RemoveDuplicates Columns:=1, Header:=xlNo
For i = 2 To .Cells(Rows.Count, "e").End(xlUp).Row
.Cells(i, "f") = Application.WorksheetFunction.CountIf(Rng, .Cells(i, "e"))
Next i
Set Rng2 = .Range(.Range("f2"), .Range("f1048576").End(xlUp))
If MsgBox("오름차순 정렬을 원하시면 Yes, 내림차순은 No를 클릭하세요.", _
vbInformation + vbYesNo, "Option") = vbYes Then
Opt = xlAscending
Else
Opt = xlDescending
End If
.Sort.SortFields.Clear
.Sort.SortFields.Add Rng2, xlSortOnValues, Opt, xlSortNormal
.Sort.SetRange .Range("e1").CurrentRegion
.Sort.Header = xlYes
.Sort.Apply
.Range("e1").CurrentRegion.Borders.Weight = xlThin
Rng2.NumberFormatLocal = "#,##0_-"
.Select
End With
Application.ScreenUpdating = True
End Sub
자세한 내용은 첨부파일을 참고로...
그럼 잘 해결되시길... ^^*
=======================================================================================
첨부파일
130809_데이터_나열_및_정렬.xlsm
=======================================================================================
첫댓글 카페지기님 빠른 답변 너무 감사드립니다.
그런데 첨부파일의 Click Me!!!를 클릭하면 Sheet3에 결과가 표시되어야 되는데...
작동을 안합니다. 다시 만져주세요...제가 워낙 응용력이 없다보니 죄송합니다.
행복한 하루 되세요 진심으로 감사드립니다.
카페지기님 짱짱짱!!!
그러한 결과를 보시고 싶어하신다 하셔서 제가 코딩을 수정하는 사이에 답글을 주셨네요...
새로 수정한 자료를 확인해 보세요...
감사합니다...!
카페지기님이 보내주신 프로그램이 제가 원하는 프로그램 맞습니다.
이제 실전에 적용하기 위해서는 C열에 오늘 검색된 내용으로 카피해서 붙이고
Click Me!!!를 누르면 정리되어야 하는데요
Click Me!!!를 누르면 매크로가 작동할 수 없다는 메세지가 나옵니다.
어떻게 해결하면 되는지 알려주세요...
매번 부탁만 드려서 죄송한데요
정말 카페지기님한테 늘 감사드리는 마음으로 살고 있습니다.
파일을 열면 [편집 사용]이란 버튼이 상단에 보일텐데 그 버튼을 클릭하시면 보안알림이 나타날텐데...
그때 [매크로 포함]을 클릭하시고 사용하세요.
만약 그러한 메세지가 나타나지 않는다면 엑셀의 환경설정에서 매크로 사용을 하지 못하도록 처리한건 아닌지 확인해 보세요...
참고로 제가 올려드린 자료는 다시 다운로드해서 제가 테스트 해 봤는데 문제가 없습니다...
그럼 잘 해결되시길... ^^*
우와 정말 무더위가 싹 가시는 시원한 해결입니다.
카페지기님 정말 대단합십니다. 무더위에 건강조심하시고 늘 행복하세요~
카페지기님은 정말 복 많이 받으실거예욤...감사합니다.
해결되셨나요?
잘 해결되신듯 해서 저 역시 무더위가 싸악 가시는 느낌입니다.
감사합니다...!
정말 시원한 해결입니다. 정말 같은 프로그램가지고 하늘과 땅차이의 활용에 대하여
정말 존경과 감탄을 금할 수 없습니다. 너무너무 감사드립니다.
사용하다 보니 욕심이 하나 생겼습니다.
만들어 주신 프로그램과 같은 형식으로 매번 엑셀파일은 생성됩니다.
그래서 Click me!!! 만 복사해서 새로운 엑셀파일에 붙여서 작동시키면
좀더 편리할 것 같은데요.....Click me!!! 를 카피해서 붙이기가 안됩니다.
혹시 가능하면 도움말씀 부탁드립니다.
엑셀의 대한민국 최강자 카페지기님 정말 감사합니다.
이여름 시원한 폭포수 같은 해결이였습니다.
안녕하세요?
그렇게 접근하시면 안되고 이러한 경우는 시작될때 마다 리본메뉴에 해당 기능아이콘이 나타나도록 하고 실행하시는게 좋을듯 합니다.(엑셀 추가기능)
*xlam 파일로 만드는 방법은 글로 설명드리기는 조금 쉽지 않고 또 파일을 만들어 드려도 특정폴더에 넣어둬야 하는 등의 문제가 있습니다.
그리고 리본메뉴생성은 또 XML을 공부해야 메뉴생성이 가능하기에 말로 설명이 쉽지 않습니다.
만약 많이 필요하신 사항이라면 나중에 오프에 한번 나오시면 설명드리고 만들어 드리겠습니다.
감사합니다...!
네 카페지기님 잘 알았습니다.
지금까지 만들어주신 프로그램으로도 충분하고 대 만족입니다.
저한테 큰 기쁨 주신만큼 어디선가 큰 복이 만들어져 카페지기님께 큰 행운이 돌아가도록
늘 감사하는 마음의 에너지를 보내드리겠습니다.
더위에 진짜 시원한 해결 감사드립니다.
감사합니다...!
짱짱짱 카페지기님 감사드립니다.
보내주신 프로그램을 사용하다보니 누락되는 데이터가 생겼습니다.
즉 원시데이터 C열(Sheet1 C열)에 존재하는 회사이름이 단독으로 있거나,
여러개가 있더라도 마지막 회사는 콤마가 생략되어 있어서 그런지
데이터 처리에서 누락되는 현상이 나타납니다. 이런 오류수정도 가능한지요?
검토부탁드립니다.
만능해결사 짱 카페지기님께 감사드리면서 문제해결을 기대해 봅니다.
행복한 주말 보내세요~