VBA

엑셀 vba/발주관리

매입처 관리폼 #3 Listview 데이터 채우기

이번 포스팅에서는 매입처 관리폼에 만든 Listview에 데이터를 넣는 코드를 작성해 보겠습니다. 먼저 폼이 열릴때 실행되는 코드 입니다. '폼 열릴때 실행 Private Sub UserForm_Initialize() Call SetColumnHeaders Call Load_Purchase_DB Me.txtSearch.SetFocus End Sub Listview의 헤더를 설정해주고, 데이터를 불러온뒤 검색창으로 포커스를 맞춰줍니다. SetColumnHeaders는 Listview의 헤더를 설정해 주는 모듈입니다. 코드는 아래와 같습니다. '리스트뷰 헤더 설정 Private Sub SetColumnHeaders() With Me.ListProduct.ColumnHeaders .Add Text:="번호",..

엑셀 vba/기타

엑셀에서 카카오톡 메세지 보내기

새로운 소스를 포스팅 했습니다. 여기에서 확인해 주세요. 원본 소스는 "오빠두엑셀"에서 가져왔습니다. 원본에는 카톡 대화창이 열려 있을때만 보낼수 있게 되어있는데, 댓글을 보니 채팅창이 닫혀있을때는 안정성이 떨어진다는 이유로 업데이트를 보류하고 있다고 하네요. 해서 여기저기 찾아보고 제 나름대로 업데이트를 했습니다. 채팅창이 간혹 안열리는 경우가 있어서 sleep로 대기시간을 1초정도 넣어줘 봤습니다. 아마도 원작자분이 얘기하신 안정성 문제가 이런 부분이 아닐까 싶은데 제 능력으론 대기시간을 주는 정도로 밖에는 다른 해결책이 떠오르지 않네요. 참고해서 연구해 보실분들은 연구해 보시면 좋을것 같습니다. 더보기 시트 소스코드 입니다. Private Sub Worksheet_Change(ByVal Target..

엑셀 vba/기타

VBA 맨위의 행으로 이동하는 명령어

맨위의 행으로 이동하는 명령어 ActiveWindow.ScrollRow = 1 스크롤을 아래로 내리거나 데이터 양이 많아서 검색등을 했을시에 스크롤을 처음행으로 이동시킬수 있다.

엑셀 vba/발주관리(OLD)

발주관리#8 매입처 삭제

이번 포스팅은 매입처 관리에서 삭제 버튼에 할당되는 프로시저입니다. 삭제에는 따로 유저폼이 필요하지 않기 때문에 코드만 넣어주시면 되겠습니다. 아래와 같이 두개의 프로시저를 만들어주세요. 12345678910111213141516171819202122232425262728293031323334353637Sub 매입처_삭제() Dim rngclmB As Range '붙여넣은 영역의 B열을 담아둘 변수 If Intersect(Columns("A"), Selection) Is Nothing Or Not Intersect(Rows("1:3"), Selection) Is Nothing Then 'A열이 아니거나 1:3행일 경우 sub 종료 MsgBox "삭제할 번호셀을 선택해 주세요!", vbCritical, "..

엑셀 vba/발주관리(OLD)

발주관리#7 매입처 수정

이번 포스팅은 지난 발주관리#3에서 만들어둔 수정 버튼에 프로시저를 만들어 연결하겠습니다. 역시 지난 포스팅에서 만들었던 유저관리폼과 함께 사용하게 됩니다. 우선 수정 버튼을 눌렀을때 실행될 프로시저 입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Sub 매입처_수정() '복수셀 선택시 종료 If Selection.Count > 1 Then MsgBox "수정할 하나의 셀만 선택해 주세요!", vbCritical, "오류" Exit Sub End If 'A:C열이 아니거나 1:3행일경우 종료 If Intersect(Columns("A:C"), Selection) Is Nothing Or Not Intersect(Rows("1:..

엑셀 vba/기타

날짜를 요일로 반환받기

오늘 파일 작업을 하다 갑자기 정해진 날짜를 요일로 반환받는게 필요해서 검색해보고 이것저것 실험해보고 알게되었네요. 1 WeekdayName(Weekday(Sheets("시트1").Range("A1"), vbSunday), True) cs 시트1 시트의 A1에 날짜가 적혀있다는 가정하에 위의 코드를 사용하면 적혀진 날짜의 요일을 반환합니다. Weekday는 날짜를 요일에 해당하는 숫자로 반환해주는 명령어구요. WeekdayName는 요일에 해당하는 숫자를 요일로 반환해주는 명령어 입니다. 각 명령어를 클릭하시면 영문 설명/예제 링크로 연결됩니다. 마지막의 True 부분은 옵션인데, 예를들어 A1의 요일이 월요일이라 가정하면 True일 경우 월이라고 표시가 되고, False일 경우 월요일로 표시가 됩니다.

엑셀 vba/기타

중복 데이터값 합산하기 #2

이전 포스팅에서 썼던 중복 데이터값 합산을 SQL을 이용해서 좀더 스마트하게 만들수 있더군요. 좌측의 데이터를 맨 우측의 양식으로 뽑아냅니다. 코드는 아래와 같습니다. Option Explicit Sub add_each_code() Dim rowsCnt As Long Dim strSQL As String, strConn As String, code As String Dim Rs As ADODB.Recordset Dim i As Integer rowsCnt = Cells(Rows.Count, "A").End(3).Row strSQL = "SELECT 코드, SUM(수량) AS 수량 " strSQL = strSQL & "FROM [$A1:B" & rowsCnt & "] " strSQL = strSQL & "..

엑셀 vba/기타

중복 데이터값 합산하기

종종 방문하는 카페에 질문글이 올라와서 한번 만들어 봤습니다. 왼쪽에 있는 데이터의 중복코드를 1개로 표시하고 각 코드의 수량을 합산해달라는 내용이었습니다. 세번째처럼 합산 표시하는 매크로를 만들어 봤어요. 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Option Explicit Sub add_each_code() Dim r As Long Dim rowsCnt As Long Application.ScreenUpdating = False Columns("A:B").Copy 'A:B열을 복사 Columns("E:E").Insert Shift:=xlToRight 'E열에 삽입 Application.CutCopyM..

엑셀 vba/발주관리(OLD)

발주관리#6 매입처 추가(등록)

이번 포스팅은 지난 발주관리#3에서 만들어둔 버튼에 프로시저를 만들어 연결하겠습니다. 지난 포스팅에서 만들었던 유저관리폼과 함께 사용하게 됩니다. 우선 추가버튼에 연결할 프로시저를 만듭니다. 1 2 3 4 5 6 7 8 9 10 11 '매입처등록폼 불러오기 Public Sub show_매입처등록폼() With 매입처등록폼 .StartUpPosition = 0 .Left = 400 .Top = 200 .Show '매입처등록폼 불러오기 End With End Sub Colored by Color Scripter cs 추가버튼에 매크로 연결을 해주세요. 이제 매입처등록폼에 내용을 채워줘야 합니다. 좌측 프로젝트창에서 폼>매입처등록폼을 우클릭 한뒤 코드보기를 눌러주세요. 매입처등록폼에 아래의 코드를 입력해 줍니..

엑셀 vba/발주관리(OLD)

발주관리#5 매입처 등록, 수정 폼 만들기

오늘은 지난 발주관리#3에서 만들어 두었던 추가,수정 버튼에 연결할 유저폼을 만들겠습니다. 우선 매입처등록폼 입니다. 매입처명은 textbox로 구분은 combobox로 만들어주시고 명령단추로 저장, 취소를 만들어주세요. 그다음 매입처수정폼 입니다. 번호, 매입처명은 textbox로 구분은 combobox로 명령단추로 저장, 취소를 만들어주세요. 매입처등록폼에 번호만 추가된겁니다. ㅎㅎ 매입처수정폼에서 번호 textbox의 속성에서 Enabled를 false로 설정해주세요. 일련번호가 들어가는 부분이기 때문에 수정을 할수 없게 만들어 줘야 합니다. 이번 포스팅은 조금 짧지만 여기까지 입니다. 다음 포스팅은 추가, 수정, 삭제에 해당하는 DB 제어 프로시저를 작성하도록 하겠습니다.

SweetCookie
'VBA' 태그의 글 목록 (2 Page)