:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไร

Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไร

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#21

by godman » Tue Mar 20, 2012 6:26 am

ผลการใช้งานโอเค ครับ ขอบพระคุณเป็นอย่างสูงนะครับ ขอให้รักษาสุขภาพด้วยครับ

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#20

by snasui » Tue Mar 20, 2012 12:05 am

:D ลองดูตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Sub PasteData()
    Dim i As Integer
    Dim rSource As Range
    Dim rTarget As Range
    On Error Resume Next
    i = Worksheets("Form").Range("D6").Value
    With Worksheets("Template")
        Set rSource = .Range(.Range("A2"), .Range("M" & i + 1))
    End With
    With Worksheets("Database")
        Set rTarget = .Range("A65536").End(xlUp).Offset(1, 0)
    End With
    Application.ScreenUpdating = False
    Dim msg As Byte
    msg = MsgBox(prompt:="Edit data click ""Yes"", Add data click ""No"".", _
        Buttons:=vbYesNo, Title:="Edit or Replace?")
    rSource.Copy
    If msg = vbNo Then
        rTarget.PasteSpecial xlPasteValues
    Else
        Dim lng As Long
        lng = Application.Match(Sheets("Form").Range("C2"), _
            Sheets("Database").Range("C:C"), 0)
        If Err > 0 Then
            MsgBox "You can't edit data, please try again."
            Exit Sub
        End If
        Sheets("Database").Range("A" & lng).PasteSpecial xlPasteValues
    End If
    Application.CutCopyMode = False
    Application.ScreenUpdating = False
    MsgBox "Paste Finish"
    Worksheets("PivotReport").PivotTables("PivotTable1"). _
        PivotCache.Refresh
End Sub

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#19

by godman » Mon Mar 19, 2012 9:51 pm

ขอรบกวนครับ จาก code นี้ถ้าจะเปลี่ยนความต้องการเป็นว่า ให้ paste data ทับข้อมูลเดิม โดยมีข้อแม้ว่าชื่อเดิม พนักงานคนเดิม แต่คะแนนเปลี่ยน จะเปลี่ยน code ตรงใหนดีครับ

Code: Select all

[code]Sub PasteData()
Dim i As Integer
Dim rSource As Range
Dim rTarget As Range
i = Worksheets("Form").Range("D6").Value
With Worksheets("Template")
    Set rSource = .Range(.Range("A2"), .Range("M" & i + 1))
End With
With Worksheets("Database")
    Set rTarget = .Range("A65536").End(xlUp).Offset(1, 0)
End With
Application.ScreenUpdating = False
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = False
MsgBox "Paste Finish"
Worksheets("PivotReport").PivotTables("PivotTable1"). _
    PivotCache.Refresh
End Sub
[/code]
Attachments
ExFormForManageTrainningHrResource.xls
เปลี่ยน code จากpaste ลงล่างเรื่อยๆเป็น past ทับข้อมูลเดิม โดยใช้ชื่อเดียวกันเป็นเงืือนไข
(93.5 KiB) Downloaded 21 times

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#18

by godman » Wed Oct 20, 2010 9:53 pm

ขอบคุณครับขอเวลาเขียนคำถามก่อนครับ

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#17

by snasui » Wed Oct 20, 2010 9:42 pm

:D ที่ Code ไม่ทำงานก็เพราะว่า Form กับ Form30 หน้าตาไม่เหมือนกันเลย ตำแหน่งเซลล์ต่าง ๆ ก็ไม่เหมือนกัน ลักษณะงานเช่นนี้ต้องปรับปรุงเปลี่ยนแปลง Code ให้เข้ากับงานใหม่ครับ ไม่สามารถเอาไปใช้ตรง ๆ โดยการเปลี่ยนเพียงชื่อ Sheet

ลองเพิ่มคำอธิบายมาครับว่าต้องการจะนำช่วงข้อมูลใดไปไว้ที่ใด นอกจากนี้ผมไม่เจอชีทที่ชื่อว่า Template30 ตามที่เขียนไว้ใน Code ครับ :mrgreen:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#16

by godman » Wed Oct 20, 2010 9:27 pm

ไฟล์ครับ ช่วยแนะนำหน่อยครับว่าผมควรทำแบบนี้หรือไม่ คือผมอยากให้มันอยู่ไฟล์เดียวกันเพราะว่ามันเกี่ยวข้องกันหมดและผมอยากลดขั้นตอนการทำงานครับ
Attachments
FormForManageTrainningReport.zip
ไฟล์ครับ
(884.95 KiB) Downloaded 13 times

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#15

by snasui » Wed Oct 20, 2010 7:48 pm

:shock: ตัดมาเป็นตัวอย่างก็ได้ครับ เอาเฉพาะ Sheet ที่เกี่ยวข้อง Save As มาเป็นอีกไฟล์ ลบฐานข้อมูลทิ้งไปก่อนก็ได้ครับ :P

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#14

by godman » Wed Oct 20, 2010 7:45 pm

มันใหญ่ครับ ส่งไม่ได้
ลดขนาดแล้ว ก็ยังเกิน

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#13

by snasui » Wed Oct 20, 2010 7:41 pm

:D ลองส่งไฟล์ตัวอย่างมาดูครับ จะได้เห็นว่ามีการปรับค่าอะไรไว้อย่างไร วางตำแหน่ง Code ตรงไหน ฯลฯ :mrgreen:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#12

by godman » Wed Oct 20, 2010 7:28 pm

Sub PasteData()
Dim i As Integer
Dim rSource As Range
Dim rTarget As Range
i = Worksheets("Form30").Range("D6").Value
With Worksheets("Template30")
Set rSource = .Range(.Range("A2"), .Range("M" & i + 1))
End With
With Worksheets("Data30")
Set rTarget = .Range("A65536").End(xlUp).Offset(1, 0)
End With
Application.ScreenUpdating = False
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = False
MsgBox "Paste Finish"
Worksheets("PivotReport").PivotTables("PivotTable1"). _
PivotCache.Refresh
End Sub
คือผมลอกไปใส่ใน อีก sheet ครับชื่อ Sheet Data30 , template30 , จาก Form30 ทำไมมันฟ้องว่าผิดพลาดครับ ตรง i

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#11

by godman » Sat Jul 24, 2010 11:24 am

ขอบพระคุณเป็นอย่างสูงครับ คิดว่านำไปใช้งานได้จริงครับ ส่วนรายละเอียดจะขอเวลาศีกษาและปรับแต่งค่าการคำนวณต่างๆดู คิดว่าต้องทำงานหนักก่อนครับ ถ้าไม่เข้าใจจริงๆจะมาถามใหม่แต่คิดว่าอีกสัก 2-3 วันะหนะครับ

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#10

by snasui » Sat Jul 24, 2010 11:16 am

:D ถูกต้องครับ ถ้าจะใช้ไฟล์นี้เป็นตัวจริงก็ต้องปรับให้เป็นตามที่ใช้จริง ทบทวนค่าการคำนวณต่าง ๆ เพื่อให้ตรงกับงานจริงครับ อันนี้ทำมาเป็นตัวอย่างเท่านั้นน่ะครับ :mrgreen:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#9

by godman » Sat Jul 24, 2010 11:13 am

คือ Full point ของผมมันไม่ได้เต็ม 4 นะครับ เฉพาะ GR&R Test เท่านั้นที่เต็ม 4 ส่วนอันอื่นคะแนนเต็มที่ 2 คะแนนครับ
แสดงว่าผมต้องเข้าไปแก้ใน Sheet Database ของทุกคนเลยใช่ไหมครับ

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#8

by snasui » Sat Jul 24, 2010 10:55 am

theeranart wrote:คือผมไปเพิ่มชื่อพนักงานใหม่ ชื่อ Theeranart และใส่ข้อมูลใน Sheet HRprofile แล้วทำไมเมื่อมาหน้า Form มันจึงหาข้อมูลของชื่อนี้ไม่เจอครับ
2.ผมหาปุ่ม Paste ใน Form ไม่พบ
3.ลำดับการคีย์ข้อมูลคือ
3.1 Sheet HRprofile 3.2 Sheet Form เท่านั้นใช่ไหมครับ
4.Factor มีความหมายว่าอย่างไรครับ
:D ปุ่ม Paste คือ ปุ่ม Record Data ครับ

ลำดับการคีย์ข้อมูลถูกต้องแล้วครับ ถ้าพนักงานเพิ่มก็ต้องไปเพิ่มใน Profile หากมีคอร์สเพิ่มก็ต้องไปเพิ่มใน Course

Factor คือตัวที่เอาไปทำการหารคะแนน จากไฟล์เดิม มีทั้่ง 24 และ 28

สูตรการดึงข้อมูลผมอาจจะใส่ขอบเขตไว้แค่ข้อมูลที่มี ถ้าเพิ่มข้อมูลพนักงานต้องแก้ไขสูตรครับขยายช่วงข้อมูลออกไป เช่น C2 ใน Sheet Form สูตรเดิม

=VLOOKUP(C4,HrProfile!$A$2:$E$195,2,0)

หากเพิ่มพนักงานเข้ามา 1 คนก็ต้องปรับเป็น

=VLOOKUP(C4,HrProfile!$A$2:$E$196,2,0) เป็นต้น

หากไม่ต้องปรับบ่อย ๆ ก็กำหนดชื่อให้กับช่วงข้อมูลได้ อย่างที่ผมทำตัวอย่างไว้ โดยให้ชื่อไว้กับข้อมูลใน Sheet Database ซึ่งไม่ว่าข้อมูลจะเพิ่มหรือลด ชื่อนี้จะขยายเพิ่มลดตามข้อมูลที่มี สามารถนำชื่อนี้ไปใช้ในสูตรโดยไม่ต้องแก้ไขบ่อย ๆ ครับ

สามารถเ้ข้าไปดูการตั้งชื่อได้โดยเ้ข้าเมนู Insert > Name > Define ครับ :mrgreen:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#7

by godman » Sat Jul 24, 2010 10:45 am

คือผมไปเพิ่มชื่อพนักงานใหม่ ชื่อ Theeranart และใส่ข้อมูลใน Sheet HRprofile แล้วทำไมเมื่อมาหน้า Form มันจึงหาข้อมูลของชื่อนี้ไม่เจอครับ
2.ผมหาปุ่ม Paste ใน Form ไม่พบ
3.ลำดับการคีย์ข้อมูลคือ
3.1 Sheet HRprofile 3.2 Sheet Form เท่านั้นใช่ไหมครับ
4.Factor มีความหมายว่าอย่างไรครับ

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#6

by godman » Sat Jul 24, 2010 10:12 am

I LOVE YOU SO MUCH ผมคิดว่าผมจะทดลองใช้ดูก่อน ถ้าได้ผลประการใดผมจะมาหาใหม่ครับ ผมจะต้องกลับมารายงานให้ทราบแน่ๆ อาจารย์ได้ทำคุณประโยชน์ให้กับสังคมบริหารมากเหลือเกิน ขอบพระคุณในขั้นต้นด้วยใจจริง

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#5

by snasui » Sat Jul 24, 2010 9:49 am

:D ผมทำตัวอย่างไฟล์มาให้ตามแนบด้านล่างครับ

โดยมีการแยก Data ออกเป็น Sheet เช่น

ข้อมูลเกี่ยวกับบุคคลก็แยกไ้ว้ที่ Sheet HrProfile
ข้อมูลเกี่ยวกับ Course การอบรมแยกไว้ที่ Sheet Course

จากนั้นสร้างหน้าจอในการกรอกข้อมูลพร้อมสูตรเพื่อดึงข้อมูลและคำนวณค่าที่เกี่ยวข้อง ค่าที่กรอกจะถูกเชื่อมโยงไปยัง Sheet Template เพื่อเรียงข้อมูลและง่ายต่อการจัดการ

เมื่อกดปุ่ม Record Data ข้อมูลที่กรอกไว้จะถูกนำไปวางที่ Sheet Database ต่อท้ายข้อมูลที่มีอยู่เดิมและทำการ Refresh Sheet PivotReport ให้อัตโนมัติ

สำหรับข้อมูลที่ทำมาเป็นตัวอย่างนี้ ผมแปลงจากข้อมูลที่แนบมาให้หากตรวจสอบแล้วเห็นว่าถูกต้องสามารถนำไปใช้จริงได้เลย แต่มีบางค่าที่จะต้อง Update เ้ข้าไปให้ตรงกับข้อมูลจริง เช่น รหัสพนักงาน นอกจากนี้มีข้อมูลวันที่ที่ได้คีย์ไว้เป็น Text ควรปรับให้เป็นวันที่ที่เป็น Serial Number ดังเ่ช่นข้อมูลวันที่อื่น ๆ เพื่อประโยชน์ในการสรุปข้อมูลเป็นงวด ๆ ใน PivotTable :mrgreen:
Attachments
ExFormForManageTrainningHrResource.xls
(836 KiB) Downloaded 83 times

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#4

by godman » Fri Jul 23, 2010 7:52 pm

คือว่า Sheet 1 คือ Sheet รวมซึ่งผมมีพนักงานอยู่ 4 คนแต่ะลคนจะดู 1 PRODUCT ซึ่ง มีดังนี้ 1.DAMPER 2.ARM 3.IB 4.BW แต่ Sheet รวมนี้ผมจะให้ทั้ง 4 คนมากรอกแบบไม่แบ่งแยก จากนั้นเด็กผมก็จะ COPY คนของตนเองที่ผ่านการอบรม ไปไว้ใน Sheet REV 0 ซึ่งเป็น sheet ของแต่ละคนจริงๆ แล้วก็จะทำการกรอก คะแนนของทักษะอันอื่นอีก 12 ทักษะที่เหลืออยู่ ครานี้ก็จะดูว่ามีใครคนใหนมันกได้เกรดต่ำกว่า 4 ไหม ถ้าตำ่กว่าจะทำการอบรมซ่อม แล้วพอได้คะแนนเท่าำหร่ก็จะ ลงใน Sheet ใหม่โดยใช้ชื่อว่า rev 1 2 3 ตามจำนวนครั้งที่เด็กสอบซ่อมจนกว่าจะผ่าน สอนผมทำด้วยครับ ตอนนี้มันทำงานซ้ำซ้อนกันมาก เสียเวลามากกับการลงข้อมูล

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#3

by godman » Fri Jul 23, 2010 7:31 pm

โอ้ เริ่มเห็นแสงสว่างรำไรแล้วครับ จะอธิบายต่อไป สักครู่ครับ

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#2

by snasui » Fri Jul 23, 2010 6:30 pm

:D ผมอ่านแล้วยังไม่ค่อยเข้าใจในเรื่องการเก็บข้อมูลเท่าไรครับ ลองอธิบายขั้นตอนการทำงานย่อย ๆ มาหน่อยครับว่าเป็นอย่างไร หรือยกตัวอย่างมาสัก 1 Sheet ว่าทำงานอย่างไร นำข้อมูลใดมาใส่ตรงส่วนใด

สำหรับตารางข้อมูลที่แยกทำเป็น DAMPER VMI Rev.x เบื้องต้น ผมเห็นว่าสามารถทำอยู่ใน Sheet เีดียวกันได้เลยทุกทักษะโดยการเก็บข้อมูลทักษะลงไปด้านล่างในทางบรรทัด ซึ่ง 1 คนจะมี 13 ทักษะ แต่ละทักษะได้คะแนนเท่าไรก็กรอกไป แล้วค่อยทำ PivotTable เพื่อแยกข้อมูลเป็นรายคน รายแผนก หรือรายอื่น ๆ แล้วแต่ต้องการดูข้อมูล

สำหรับหน้ากรอกข้อมูลอาจจะทำฟอร์มขึ้นมา 1 ฟอร์มแล้วใช้ Macro ในการวางข้อมูลลง Database หลังจากกรอกเรียบร้อยแล้วครับ :mrgreen:

Top