Page 1 of 1

ขอความกรุณาแก้ปัญหา

Posted: Thu Feb 03, 2011 3:30 pm
by Panuwat
เรียนท่านอาจารย์
ผม มีความสนใจในโปรแกรม MS EXCEL มาตลอด ได้ศึกษาจากหนังสือหลายเล่ม แต่ก็ไม่ได้มีความรู้ที่ลึกซึ้ง ซึ่งปัจจุบันกำลังมีความสนใจเกี่ยวกับ VBA ลองหัดทำตามหนังสือต่างๆ ก็ยังไม่ได้รับความกระจ่าง จึงอยากขอความกรุณาจากท่านอาจารย์ ดังนี้
จากไฟล์ที่ส่งให้ท่านอาจารย์ เป็นตัวอย่าง สาขา ของธนาคาร ซึ่งมีอยู่มาก การที่จะบริหารจัดการจึงทำได้อยาก ผมจึงอยากให้อาจารย์ช่วยแนะนำ การบริหารจัดการเกี่ยวกับข้อมูลของสาขาโดย..
1.ฟอร์มการบันทึกข้อมูล ให้ข้อมูลที่ถูกบันทึกลงไปใหม่ต่อท้ายในแถวสุดท้ายไปเรื่อยๆ
1.1 กรณีที่มีสาขานี้อยู่แล้ว ให้มีแมสเสทเตือน
1.2 การรับรหัสสาขา จะต้องขึ้นต้นด้วย 200 เสมอ และมีหกตัวเลข เช่น รหัส 200### สาขา ??????? มีแมสเสทเตือนครับ
2.ฟอร์มการค้นหาข้อมูล
3.ฟอร์มการแก้ไขข้อมูล
4.ฟอร์มการลบข้อมูล
5. เขียน Code ลงในโปรแกรมได้ไหมครับ

กระผมหวังเป็นอย่างยิ่งว่าจะได้รับความกรุณาจากท่านอาจารย์ครับ ทั้งนี้ ผมได้จัดส่งไฟล์แนบ เพื่อประกอบการพิจารณาแล้วครับ
ขอแสดงความนับถือ

Re: ขอความกรุณาแก้ปัญหา

Posted: Thu Feb 03, 2011 7:07 pm
by snasui
:D ลองดูตัวอย่าง Code และไฟล์แนบประกอบครับ ผมไม่ใช้ Form ที่เขียนมาให้เพราะคิดว่าเขียนลงใน Excel สะดวกกว่า สามารถปรับ Code ได้ตามต้องการครับ

Code: Select all

Sub Record()
Dim rs As Range, rt As Range, rc As Range
With Worksheets("br_code")
    Set rs = .Range("A2:B2")
    Set rt = .Range("A65536").End(xlUp).Offset(1, 0)
    Set rc = .Range("F2")
End With
If rc = True Then
    MsgBox "This Branch already exist."
    Exit Sub
Else
rs.Copy: rt.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End If
MsgBox "Finish"
End Sub

Sub EditRec()
Dim rs As Range, rt As Range
Dim rc As Range, rd As Range
Dim re As Range
With Worksheets("br_code")
    Set rs = .Range("A2:B2")
    Set rt = .Range("A65536").End(xlUp).Offset(1, 0)
    Set rc = .Range("F2")
    Set rd = .Range("F3")
    Set re = .Range("A4").Offset(rd.Value, 0)
End With
If rc = True Then
    rs.Copy: re.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
Else
    MsgBox "This record has not exist."
    Exit Sub
End If
MsgBox "Finish"
End Sub

Sub FindData()
Dim re As Range, rd As Range, rc As Range
With Worksheets("br_code")
    Set rc = .Range("F2")
    Set rd = .Range("F3")
    Set re = .Range("A4").Offset(rd.Value, 0)
End With
If rc = False Then
    MsgBox "No record were found"
    Exit Sub
Else
    re.Select
End If
End Sub

Sub DelRecord()
Dim re As Range, rd As Range, rc As Range
With Worksheets("br_code")
    Set rc = .Range("F2")
    Set rd = .Range("F3")
    Set re = .Range("A4").Offset(rd.Value, 0)
End With
If rc = False Then
    MsgBox "No record were found"
    Exit Sub
Else
    re.EntireRow.Delete
End If
MsgBox "Delete Finish"
End Sub

Re: ขอความกรุณาแก้ปัญหา

Posted: Thu Feb 03, 2011 9:32 pm
by Panuwat
ขอบพระคุณท่านอาจารย์มากครับ จะนำไปประยุกต์ใช้กับงานด้านอื่นๆ ด้วยครับ


ขอแสดงความนับถือ
ภาณุวัฒน์