Page 2 of 8
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Apr 05, 2011 11:32 am
by suka
อาจารย์คะ ส่งไฟล์ที่ชีท PrintReport ไม่ทราบว่าพอจะนำมาใช้ได้หรือไม่
หากยังใช้ไม่ได้ ขออาจารย์ช่วยแนะนำเพิ่มนะคะ ควรปรับปรุงที่ใด
ขอบพระคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Apr 05, 2011 12:27 pm
by snasui
ผมเขียน Code สำหรับการ View Report มาให้ตามด้านล่าง ดูตัวอย่างไฟล์แนบครับ
Code: Select all
Sub HideUnhide()
Dim r As Range
Dim i As Integer
With Worksheets("PrintReport")
.Range("C1:AG1").EntireColumn.Hidden = False
i = 31 - (.Range("B3") - .Range("B2") + 1)
If i < 0 Then
MsgBox "Please check date."
Exit Sub
End If
Set r = .Range("AG1") _
.Offset(0, -i + 1).Resize(1, i + 1)
End With
If r.Count = 1 Then
Exit Sub
End If
r.EntireColumn.Hidden = True
End Sub
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Apr 05, 2011 1:21 pm
by suka
อาจารย์คะ มารับไฟล์แนบนะคะ
ได้ตามที่ต้องการค่ะ ขอขอบคุณในความมีน้ำใจ ให้ความรู้ให้ช่วยเหลือผู้รู้น้อยด้วยความจริงใจ
ใกล้ปีใหม่ไทยแล้ว ขอให้อาจารย์ได้รับพรจากสิ่งศักดิ์สิทธิ์ ที่อาจารย์นับถือคุ้มครองมีสุขภาพดี
มีความสุข เดินทางปลอยภัยนะคะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Apr 05, 2011 4:22 pm
by snasui
ขอบคุณสำหรับคำอวยพร ขอให้โชคดี มีความสุข ก้าวหน้าในอาชีพยิ่ง ๆ ขึ้นไปครับ

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Apr 19, 2011 3:46 pm
by suka
สวัสดีปีใหม่ไทยค่ะ
ขอบคุณค่ะ ขอให้อาจารย์และครอบครัวโชคดี มีความสุข ก้าวหน้าในทุก ๆ ด้าน เช่นกันนะคะ
อาจารย์คะ ขอถามเรื่องฟอร์มกรอกข้อมูลค่ะ หากชีท Form ออกแบบกรอกข้อมูลเป็นรายสัปดาห์
เช่นฟอร์มตัวอย่างนี้ไม่ทราบว่าสามารถทำการบันทึกข้อมูลไปไว้ที่ชีท Database ได้ไหมคะ
ขอบพระคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Apr 19, 2011 9:39 pm
by snasui
การกรอกข้อมูลแบบที่ว่านั้นแล้วค่อยนำไปทำเป็น Database ก็เหมือนกับที่กรอกเป็นเดือนตามที่ถามมาก่อนหน้าครับ การทำเป็น Database สามารถทำได้แต่จะยุ่งยาก
วิธีการหนึ่งที่ทำได้คือ เพิ่ม Template เรียงข้อมูลให้เป็น Database ก่อนอย่างที่แสดงไว้แล้วตามที่ถามมาก่อนหน้านี้ที่
http://www.snasui.com/viewtopic.php?p=5754#p5754 แล้วค่อยนำข้อมูลใน Template ไปวางใน Database อีกที จะได้เขียน Code VBA ได้ง่ายและสั้นลงมาก
แต่ก่อนจะเขียน Code อยากทราบว่าข้อมูลใน Database มีครบตามต้องการแล้วยังครับ
หักเบิก, ประกัน, เบิกเพิ่ม จะต้องมีหรือไม่ครับ

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Apr 20, 2011 1:03 pm
by suka
อาจารย์คะ ขอรบกวนค่ะ ที่ชีท Template เชลล์ A2 ไม่สามารถทำการเรียงข้อมูลวันที่มาแสดงให้ได้ถูกต้อง ขออาจารย์ช่วยค่ะ
และขอคำแนะนำเพิ่มค่ะ ที่ชีท Form หากต้องบันทึก OT ด้วย ( ค่าแรงต่อวันหาร 6 เท่ากับ 1 ชม.OT ค่ะ ) แบบฟอร์มควรจะเปลี่ยนหรือเสริมจุดใดบ้างคะ
ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Apr 20, 2011 5:15 pm
by snasui

ผมเพิ่มสูตรและเขียน Code เพิ่มให้แล้วตามด้านล่างครับ
ที่ชีท Template เซลล์ A2 คีย์สูตร
=INDEX(Form!$F$3:$K$3,MOD((ROWS(A$2:A2)-1),$M$1)+1)
Enter > Copy ลงด้านล่าง
ที่ Module ปกติเพิ่ม Code ตามด้านล่างเพื่อ Copy ข้อมูลจากชีท Template ไปวางใน Database
Code: Select all
Sub PasteData()
Dim rSource As Range
Dim rTarget As Range
Set rSource = Worksheets("Template").Range("A2", Range("J61"))
Set rTarget = Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
ดูไฟล์แนบประกอบตามด้านล่างครับ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Apr 20, 2011 6:07 pm
by suka
อาจารย์คะ
หากต้องการบันทึกพนักงานทำงานล่วงเวลาด้วย ( ค่าแรงต่อวันหาร 6 เท่ากับ 1 ชม.OT ค่ะ ) ที่ชีท Form ควรจะปรับจุดใดบ้างคะ ขอคำแนะนำนะคะ
ขอบพระคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Apr 20, 2011 6:37 pm
by snasui

อันนี้แล้วแต่ผู้ใช้งานจะออกแบบมาครับ
ด้วยความสามารถของ Excel และความชำนาญของผู้ใช้งานไม่ได้ขึ้นอยู่กับว่านำข้อมูลมาจากไหน อย่างไร ย่อมสามารถนำไปบันทึกได้ทั้งนั้นครับ แต่การปรับแก้อาจจะยาก-ง่ายต่างกันมาก ลองออกแบบมาตามต้องการแล้วค่อยมาดูกันต่อครับ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Apr 20, 2011 10:08 pm
by suka
อาจารย์คะ ที่ชีท Form ขอรบกวนช่วยเขียน Code เพิ่ม เพื่อบันทึกข้อมูลให้หน่อยนะคะ
ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Apr 20, 2011 10:28 pm
by snasui

ปรับ Code สำหรับวางข้อมูลเป็นตามด้านล่างครับ
Code: Select all
Sub PasteData()
Dim rSource As Range
Dim rTarget As Range
Set rSource = Worksheets("Template").Range("A2", Range("M61"))
Set rTarget = Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Thu Apr 21, 2011 11:31 am
by suka
อาจารย์คะ ขอรบกวนค่ะ ที่ชีท Form ทำปุ่มบันทึกข้อมูลไว้ แต่เมื่อกดบันทึกแล้วไม่ทำงานค่ะ ขอคำแนะนำเพิ่มค่ะ
ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Thu Apr 21, 2011 12:07 pm
by joo
ลองปรับแก้โค๊ดที่บรรทัดนี้ดูครับ
Code: Select all
Sub PasteData()
Dim rSource As Range
Dim rTarget As Range
Set rSource = Worksheets("Template").Range("A2:N61")
Set rTarget = Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Thu Apr 21, 2011 12:52 pm
by suka
ได้แล้วค่ะ ขอบคุณมากค่ะ คุณ joo ดีใจค่ะได้รับความช่วยเหลือจากเพื่อนสมาชิก ขอบคุณนะคะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Thu Apr 21, 2011 5:05 pm
by suka
อาจารย์คะ ส่งไฟล์มาขอรบกวนอาจารย์ช่วยปรับสูตรให้ค่ะ ที่ชีท PrintReport ค่ะ
ได้แทรกเซลล์ OT เพิ่มเข้ามาในชีท PrintReport จึงใช้กับสูตรเดิมไม่ได้ค่ะ
ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Thu Apr 21, 2011 7:22 pm
by suka
ขออภัยนะคะ ไฟล์แนบเดิมข้อมูลไม่ครบ ขอส่งใหม่อีกรอบค่ะ
อาจารย์คะ รบกวนเรื่องสูตรค่ะ
ต้องการนำเอาคอลัมน์ G ในชีท Database มาแสดงที่คอลัมน์ D ในชีท PrintReport
และนำเอาคอลัมน์ H ในชีท Database มาแสดงที่คอลัมน์ E ในชีท PrintReport
โดยเริ่มที่ G จน R จากการบันทึกของชีท Form ซึ่งบันทึกเป็นรายสัปดาห์ค่ะ
ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Thu Apr 21, 2011 8:13 pm
by snasui
ในชีท Form คอลัมน์ H, J, L, N, P, R คือค่าอะไรครับ

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Thu Apr 21, 2011 8:46 pm
by suka
คือค่าที่บันทึกจากการทำ OT ในแต่ละวันของพนักรายวันค่ะ
H = วันจันทร์ , J = อังคาร , L = พุธ , N = พฤหัส, P = ศุกร์ , R = เสาร์ พื้นสีเหลืองในชีท Form แสดงข้อมูล OT ค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Fri Apr 22, 2011 8:29 am
by snasui

ผมได้ปรับ Template ใหม่ให้อยู่ในรูป Database แทนที่จะเป็น Report และปรับสูตรในการแสดงที่ Template (ที่ระบายสีเหลือง), PrintReport ปรับ VBA ที่จะ View Report ลองทดสอบใช้งานตามไฟล์แนบครับ