본문 바로가기
엑셀매크로

엑셀 매크로 인사관리 수정기능 추가

by 진서니 2023. 2. 13.

엑셀 매크로로 인사관리시스템을 만들어 가고 있습니다.

사원입력에 이어 입력된 사원을 수정작업을 할 수 있어야 하겠죠 ?

수정버튼을 만들어서 입력된 사번이 있는 사원에 대하여 수정작업을 한다.

 

먼저 [개발도구]-[VBA]-폼-UserForm1 에 들어갑니다.

도구상자에서 명령버튼을 추가합니다.

추가한 명령버튼의 Caption을 수정으로 변경합니다. 수정버튼이 수정되었습니다.

수정 명령버튼을 더블클릭하고 들어가면 프로그램을 작성할 수 있습니다.

 

Private Sub CommandButton3_Click()
'수정 - 사원번호가 기준이 되고 없으면 수정은 못함 - 수정후 입력상자 Clear

Dim lastrow, cur_row As Integer
Dim ws As Worksheet
Set ws = Worksheets("사원명부")
Dim as_data As String

lastrow = ws.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row + 1

  If MsgBox("수정된 내용을 저장하겠습니까?", vbInformation + vbYesNo, "저장확인") = vbYes Then
  
     If as_sabun.Value = "" Then
        MsgBox "사번을 입력/확인 바랍니다."
        as_sabun.SetFocus
         Exit Sub
    End If
    
    '사번이 중복이 되어 있으면 메시지 보여주고 저장하지 말고 빠져나온다.
    as_data = as_sabun.Value
    
   
    For i = 2 To lastrow - 1
        If as_data = Cells(i, 1) Then
            cur_row = i
            Exit For
        End If
    Next i
           
    If as_name.Value = "" Then
        MsgBox "성명을 입력/확인 바랍니다."
        as_name.SetFocus
         Exit Sub
    End If
    
    If as_jumin.Value = "" Then
        MsgBox "주민등록번호를 입력/확인 바랍니다."
        as_jumin.SetFocus
         Exit Sub
    End If
    
    If as_addr.Value = "" Then
        MsgBox "주소를 입력/확인 바랍니다."
        as_addr.SetFocus
         Exit Sub
    End If
        
    If as_dept.Value = "" Then
        MsgBox "소속을 입력/확인 바랍니다."
        as_dept.SetFocus
         Exit Sub
    End If
    
    If as_grade.Value = "" Then
        MsgBox "직급을 입력/확인 바랍니다."
        as_grade.SetFocus
         Exit Sub
    End If
        
    If as_indate.Value = "" Then
        MsgBox "입사일을 입력/확인 바랍니다."
        as_indate.SetFocus
         Exit Sub
    End If
            
    If as_years.Value = "" Then
        MsgBox "근속년수을 입력/확인 바랍니다."
        as_years.SetFocus
         Exit Sub
    End If
                   
    Cells(cur_row, 1) = as_sabun.Value '사번
    Cells(cur_row, 2) = as_name.Value '성명
    Cells(cur_row, 3) = as_jumin.Value '주민등록번호
    Cells(cur_row, 4) = as_addr.Value '주소
    Cells(cur_row, 5) = as_dept.Value '부서
    Cells(cur_row, 6) = as_grade.Value '직급
    Cells(cur_row, 7) = as_indate.Value '입사일
    Cells(cur_row, 8) = as_years.Value  '근속년수
    
    CmdNew_Click  '초기화 함수호출 - 실행
 
  End If

End Sub

 

인사관리를 실행해 보면 수정버튼이 보이고 실행해보면 수정이 됩니다.

 

엑셀에 데이터를 사용자 정의 폼에서 입력하고 불러와서 수정할 수 있습니다.

다음에는 삭제 버튼을 만들어 보겠습니다.

엑셀매크로_사용자정의폼_데이터_수정버튼.xlsm
0.04MB

 

댓글