조건부서식, 서로 다른 시트의 열 비교
0312 시트의 B열과 0313 시트의 B열을 비교하고, 0313 시트에만 있는 항목에 강조하려고 할 때

1. 비교하려는 0313 B열을 전체 선택
2. 조건부서식에서 새 규칙을 선택
3. 수식을 사용하여 서식을 지정할 셀 결정 선택
4. 서식지정
5. 수식설정 
=NOT(COUNTIF('0312'!$B:$B, '0313'!$B1))
6. 확인

Note. 서식이 제대로 동작하지 않는 경우, 규칙 관리에서 위 수식이 제대로 설정되었는지 검토 필요

 

출처: 인터넷 여러 고수님들...

방법대로 하다 안되서 해결은 결국 노가다였지만 ...

반응형
Posted by 스쳐가는인연

댓글을 달아 주세요


1. 나누려는 텍스트가 포함된 또는 을 선택

2. 상단 메뉴의 "데이터" > "텍스트 나누기"를 선택

3. 텍스트 나누기 마법사에서, 구분 기호로 분리됨 > 다음을 선택

4. 데이터의 구분 기호를 선택

e.g.) 쉼표 및 공백

5. 다음을 선택

 

텍스트를

D000 p0|0x1 [00] 1E:01:001,SAS SSD,HP ,MO000800JWFWP ,HPD2
D001 p0|0x1 [00] 1E:01:002,SAS SSD,HP ,MO000800JWFWP ,HPD2
D003 p0|0x1 [00] 1E:01:004,SAS HDD,HP ,MB8000JFECQ ,HPD7
D004 p0|0x1 [00] 1E:01:005,SAS HDD,HP ,MB8000JFECQ ,HPD7

 

셀에 분리 저장 할 수 있다 ~!

D000 p0|0x1 [00] 1E:01:001 MO000800JWFWP
D001 p0|0x1 [00] 1E:01:002 MO000800JWFWP
D003 p0|0x1 [00] 1E:01:004 MB8000JFECQ
D004 p0|0x1 [00] 1E:01:005 MB8000JFECQ

 

출처:

https://support.office.com/ko-kr/article/%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%82%98%EB%88%84%EA%B8%B0-%EB%A7%88%EB%B2%95%EC%82%AC%EB%A1%9C-%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EC%97%AC%EB%9F%AC-%EC%97%B4%EB%A1%9C-%EB%82%98%EB%88%84%EA%B8%B0-30b14928-5550-41f5-97ca-7a3e9c363ed7

반응형
Posted by 스쳐가는인연

댓글을 달아 주세요

  1. Favicon of http://tvple.me/tv/c/예능 예능다시보기 2020.07.07 16:51  댓글주소  수정/삭제  댓글쓰기

    잘 보고 갑니다~~

주민번호에서 생년월일만 남기고 뒷자리는 삭제하고 싶을 때, 간단한 것이라면 것이겠지만...

 

주민번호가 A에 저장되었다고 하면,

 

 790000-1111111

 =LEFT(A1, 6)

 790000-1111111

  790000


자료 출처:
엑셀 텍스트 자르기 (LEFT, RIGHT, MID)
http://howau.tistory.com/m/95

반응형
Posted by 스쳐가는인연

댓글을 달아 주세요

Outlook 2010 이전 버전

아웃룩을 사용하다가 메일 박스에 많은 메일들 중 읽지 않은 메일들만 따로 보고 싶을 때,



아웃룩의 메일 빠른 검색 창에다 아래 검색어 입력 후 검색하면 읽지 않은 메일만 정렬 된다.

 

read:no

 

읽지 않은 메시지만 표시
http://office.microsoft.com/ko-kr/outlook-help/HA102085712.aspx

 

Outlook 2013

읽지 않은 메일을 기능으로 추가해 두었다~
많은 사람들이 필요로 하는 기능 인가 부다 ~_~/~

반응형
Posted by 스쳐가는인연

댓글을 달아 주세요

사용할 문서를 제작하면서 신기한 기능에 놀라고, 구현이 어려움에 놀라서 잊기 전에 정리해두고자 한다. ㅋ_ㅋ

 

유용한 기능들로 여러 방면으로 응용이 가능하리라 판단되기에 ~_~;

 

주요 사용 기능

 - TextBox 에 데이터 입력 받고 입력받은 데이터 저장/불러오기

 - ComboBox에 목록을 보여주고, 선택한 항목 데이터 저장/불러오기

 - Radio(Option) Button 선택 후 선택한 항목 데이터 저장/불러오기

 - MsgBox 출력 및 선택 항목에 따른 추가 액션

 - Excel 통합문서 첨부하여 메일 발송

 - SaveAs 기능을 통해 통합문서 다른 이름으로 저장

 

엑셀을 설치 후 Visual Basic for Application 기능을 사용하지 않았다면 관련 기능이 Disable 상태로 있는 것 같다.

"파일" > "옵션" 항목으로 엑셀 옵션 창을 열고 "리본 사용자 지정" > "기본 탭" > "개발도구"를 "추가" 하자

 

 

 

추가되면 탭 형태로 관련 메뉴를 확인 할 수 있다.

 

 

엑셀 문서에서 개발도구의 Visual Basic을 실행하면, VB Editor가 열린다.

 

 

"MS Excel 개체"에서 마우스 우클릭을 하면 "삽입" > 사용자 정의 폼을 확인할 수 있다.

 

좌측과 같이 도구상자의 컨트롤들을 이용하여 여러 UI를 꾸밀 수 있다.

 

VB 프로젝트의 "현재_통합_문서"에서 우클릭하면 코드를 볼 수 있다.

 

현재_통합_문서의 코드에서 위에서 생성한 사용자 정의 폼(난 frmMain이라 정의하였다)을 열어 주면

사용자가 엑셀문서를 실행하면 바로 사용자 정의 폼을 출력할 수 있다.

 

- 현재_통합_문서의 예시 코드

Private Sub Workbook_Open()
   
    frmMain.frmMain_Initialize '폼 초기화 함수
    frmMain.Show '폼 출력 함수
       
End Sub

구현 기능의 기능과 목적

엑셀 문서를 실행하면 아래처럼 문서가 열림과 동시에 사용자 폼이 바로 열리고 데이터를 폼을 통해서만 수정하도록 하게 하려고 한다.

 

 

폼 초기화 함수를 통해 문서가 실행될 때 특정 값(예로 기존에 저장된 값)들을 폼에서 보이게 할 수 있다.

폼 출력 함수를 통해 문서가 실행 될 때, 폼을 바로 보여줄 수 있다.

 

폼의 사용자 정의 폼에서 코드를 편집하자. (<F7>)

 

- 현재_통합_문서에서 실행한 초기화 함수를 정의한 예시 코드

Public Sub frmMain_Initialize()

    'Variable 선언 for OptionBox(Radio Button)
    Dim iVendor As Integer '제조사를 구분할 변수를 정수형으로 선언
    
    'Case 정보

    '엑셀 통합 문서의 시트 2의 D2 셀 값을 번호(텍스트박스) 항목에 보여준다.
    tb_CaseNum.Text = Sheet2.Range("D2").Value '번호
    cbb_PL_Name.Text = Sheet2.Range("D3").Value '제품명
    tb_Date.Text = Sheet2.Range("D6").Value '날짜
       
    'Option 버튼 선택에 따라 값을 기억하기 위한 변수 선언

    iVendor = Sheet2.Range("D8").Value
       

    'Option Button 값의 True는 선택된 상태
    If iVendor = "1" Then frmMain.ob_HP.Value = True
    If iVendor = "2" Then frmMain.ob_Dell.Value = True
    If iVendor = "3" Then frmMain.ob_IBM.Value = True
       
End Sub

 

- 저장 버튼

Private Sub cb_Save_Click()
   
    On Error Resume Next

    'Variable 선언 for OptionBox(Radio Button)
    Dim iVendor As Integer

    'Case 정보
    Sheet2.Range("D2") = tb_CaseNum.Text
    Sheet2.Range("D3") = cbb_PL_Name.Text
    Sheet2.Range("D6") = tb_Date.Text
       
    If frmMain.ob_HP.Value = True Then iVendor = "1"
    If frmMain.ob_Dell.Value = True Then iVendor = "2"
    If frmMain.ob_IBM.Value = True Then iVendor = "3"
           
    Sheet2.Range("D8") = iVendor
           
    '저장부분
    Dim strNewFile As Variant
        
    '폼 상의 데이터들을 엑셀 워크 시트에 저장

    ActiveWorkbook.Saved = True
    

    '파일 명 "GCE Elevation v2"를 기본으로 매크로를 포함하는 엑셀 문서 형식으로 저장하기 위해 파일명 지정    
    'Excel 2007 - 2010

    strNewFile = Application.GetSaveAsFilename("GCE Elevation v2", filefilter:="Excel File include Macro(*.xlsm), *.xlsm")

    'Excel 97 - 2003

    'strNewFile = Application.GetSaveAsFilename("GCE Elevation v2", filefilter:="Excel File include Macro(*.xls), *.xls")

    If strNewFile = False Then Exit Sub 'SaveAs 취소 시 에러 처리    

    
    ActiveWorkbook.SaveAs strNewFile, 52    'Excel 2007 - 2010
    'ActiveWorkbook.SaveAs strNewFile, 56    'Excel 97-2003
               
End Sub

 

- 버튼 클릭 시 화면에 출력되는 내용

 

 

- 초기화 버튼

Public Sub funcReset()

'실제 폼을 초기화 하는 함수 - 그냥 노가다로 다 초기화 시켰다 ㅡ_ㅡ;
'Case 정보
frmMain.tb_CaseNum.Value = ""
frmMain.cbb_PL_Name.Value = ""
frmMain.tb_Date.Value = ""

If frmMain.ob_HP.Value = True Then frmMain.ob_HP.Value = False
If frmMain.ob_Dell.Value = True Then frmMain.ob_Dell.Value = False
If frmMain.ob_IBM.Value = True Then frmMain.ob_IBM.Value = False

End Sub

 

Private Sub cb_Reset_Click()

 

Dim iRtnMB As Integer

iRtnMB = MsgBox("데이터를 모두 지울까요?" & Chr(13) & "데이터의 필요 여부를 꼭 확인하세요", vbYesNo + vbDefaultButton2, "초기화")

If iRtnMB = vbYes Then funcReset '초기화 함수 실행

 

End Sub

 

- 버튼 클릭 시 화면에 출력되는 내용

 

 

- 종료 버튼

Private Sub cb_Close_Click()
   
    Dim iRtnMB As Integer
           
    iRtnMB = MsgBox("엑셀을 종료 할까요?" & Chr(13) & "저장 여부를 꼭 확인하세요", vbYesNo + vbDefaultButton2, "종료")
   
    If iRtnMB = vbYes Then Application.Quit '종료를 선택하면 엑셀을 종료한다
                       
End Sub

 

- 버튼 클릭 시 화면에 출력되는 내용

 

 

- 종료 후 메일 발송 버튼

Private Sub cb_SaveAndSendEmail_Click()

 

     On Error Resume Next

 

    'Variable 선언 for OptionBox(Radio Button)
    Dim iVendor As Integer

 

    'Case 정보
    Sheet2.Range("D2") = tb_CaseNum.Text
    Sheet2.Range("D3") = cbb_PL_Name.Text
    Sheet2.Range("D6") = tb_Date.Text

    If frmMain.ob_HP.Value = True Then iVendor = "1"
    If frmMain.ob_Dell.Value = True Then iVendor = "2"
    If frmMain.ob_IBM.Value = True Then iVendor = "3"

    Sheet2.Range("D8") = iVendor

 

    '저장
    ActiveWorkbook.Saved = True
   
    '메일발송
    ActiveWorkbook.SendMail ""
       
End Sub

 

- 버튼 클릭 시 화면에 출력되는 내용

 

 

- 메인 윈도우 Close 버튼 제어
'Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'    Dim iRtnMB As Integer
   
'    If CloseMode = vbFormControlMenu Then
       
'        iRtnMB = MsgBox("엑셀을 종료 할까요?" & Chr(13) & "저장 여부를 꼭 확인하세요", vbYesNo + vbDefaultButton2, "종료")
  
'        If iRtnMB = vbYes Then ActiveWorkbook.Close
'        Cancel = True
'   End If
'End Sub

 

이 기능은 제작자 본인도 VBA 수정을 하기에 번거로움이 생기는 기능인 것 같다.

활용하기 나름이겠지만 .. ㅎ_ㅎ

폼 외의 엑셀 시트의 접근을 막기 위해 활용가능한 기능 같다.

 

 

 

 

참고 자료 및 사이트

실제적으로 너무 많아서 기억이 잘...

 

http://msdn.microsoft.com/ko-kr/library/ee814737.aspx

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel._workbook.sendmail(v=office.11)

http://support.microsoft.com/kb/161598/ko 

http://support.microsoft.com/kb/829070/ko

 

http://www.iexceller.com/

 

http://mwultong.blogspot.com/2007/06/excel-read-only.html

 

http://www.rondebruin.nl/saveas.htm

http://www.rondebruin.nl/mail/folder1/mail1.htm

반응형
Posted by 스쳐가는인연

댓글을 달아 주세요

  1. Favicon of http://syn.or.kr 일치 2015.02.16 11:05  댓글주소  수정/삭제  댓글쓰기

    인터넷에서 엑셀로 복사-붙혀넣기를 하였는데, 엑셀에 옵션폼이 생긴 후 지워지질 않았는데, 올려주신 내용 보고 해결을 하였습니다. VBA 디자인 모드로 들어가는 엑셀 시트에 복사된 옵션 폼을 마음대로 선택하고 지울 수 있더군요.