: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อมูล

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#41

Post by suka »

ขอบคุณค่ะ อาจารย์ช่วยปรับให้ตั้งหลายจุดทดลองใช้งานแล้ว ใช้ได้ดีตามที่ต้องการค่ะ

ขอบพระคุณมากๆๆค่ะ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#42

Post by suka »

สวัสดีค่ะอาจารย์
ขอรบกวนอาจารย์ช่วยด้วยค่ะ จากไฟล์แนบที่ชีท Report2 ต้องการให้ทำรายงานให้ได้เหมือนกับชีท PrintReport ค่ะ
ได้ลองทำดูด้วยตัวเองแล้วไม่สามารถทำค่ะ ที่ชีท Report2 ต้องการให้แสดงแค่ตารางที่มีข้อมูลเท่านั้นน่ะค่ะ
ขอรบกวนนะคะขอบคุณมากๆค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#43

Post by snasui »

:D ถ้าหมายถึงการเขียน Code เพื่อให้ซ่อน ยกเลิกการซ่อน ที่บอกว่าลองทำเองแล้วนั้นไม่ทราบว่าเขียน Code ไว้ตรงไหนครับ ถ้ายังไม่แนบมาด้วย ให้แนบมากับไฟล์ด้วยครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#44

Post by suka »

อาจารย์คะ ที่ไม่แนบ Code VBA มาเพราะลองแล้วไม่ได้ค่ะ ลองหลายรอบแล้วเกิด Error จนงงค่ะ
ไฟล์นี้ได้แนบ Code ล่าสุดที่ลองผิดมาด้วยค่ะ จากไฟล์เดิมที่ส่งมาก่อนหน้านี้ที่ชีท PrintReport ใช้ได้ แต่พอลองใส่ Code
ชีท Report2 ใช้ได้ แต่ PrintReport กลับใช้ไม่ได้ ค่ะ

รบกวนอาจารย์นะคะขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#45

Post by snasui »

:D เปลี่ยน Code เดิมเป็นตามด้านล่างครับ ลองสังเกตว่าเปลี่ยนตรงไหน :mrgreen:

Code: Select all

Sub HideUnhide()
Dim r As Range
Dim i As Integer
Application.ScreenUpdating = False
With ActiveSheet
    .Range("F1:AI1").EntireColumn.Hidden = True
    i = (.Range("C3") - .Range("C2")) * 1 + 1
    If i < 0 Then
        MsgBox "Please check date."
        Exit Sub
    End If
    Set r = .Range("F1").Resize(1, i)
End With
If r.Count = 1 Then
    Exit Sub
End If
r.EntireColumn.Hidden = False
Application.ScreenUpdating = True
End Sub
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#46

Post by suka »

อาจารย์คะ
ช่างมหัศจรรย์เหลือเชื่อนะคะ ใช้เวลาคิดมากมายคิดเป็นวันยังทำไม่ได้
อาจารย์จัดแค่เปลี่ยน With Worksheets("PrintReport") เป็น With Worksheets("PrintReport") เท่านี้เองเหลือเชื่อจริงๆค่ะ

อาจารย์คะขอรบกวนอีกเรื่องค่ะ
ที่ชีท Template จะทำอย่างไรให้นำข้อมูลจำนวนเท่าที่ชีท Form บันทึก ไปไว้ที่ชีท database คะ
ตอนใช้งานจริงแต่ละครั้งจะใช้จำนวนเซลล์มากกว่า 600 หรืออาจน้อยกว่าค่ะ แต่ไฟล์นี้ทำไว้ที่ 612 ค่ะ
ขอบพระคุณมากค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#47

Post by snasui »

suka wrote:อาจารย์คะ
ช่างมหัศจรรย์เหลือเชื่อนะคะ ใช้เวลาคิดมากมายคิดเป็นวันยังทำไม่ได้
อาจารย์จัดแค่เปลี่ยน With Worksheets("PrintReport") เป็น With Worksheets("PrintReport") เท่านี้เองเหลือเชื่อจริงๆค่ะ
คงไม่ใช่ครับ เพราะหากทำเช่นนั้นแสดงว่าไม่ได้เปลี่ยนค่าใด ๆ

ชีท Template เซลล์ A2 สูตรไม่ถูกต้องครับ

กรณีปรับ Code ให้เพิ่มลดตามข้อมูลดูตัวอย่างตามด้านล่างครับ

Code: Select all

Sub PasteData()
Dim rSource As Range
Dim rTarget As Range
With Worksheets("Template")
    Set rSource = .Range("A2:Q2").Resize(.Range("T1"))
End With
Set rTarget = Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
    rSource.Copy
    rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#48

Post by suka »

อาจารย์คะ
ช่างมหัศจรรย์เหลือเชื่อนะคะ ใช้เวลาคิดมากมายคิดเป็นวันยังทำไม่ได้
อาจารย์จัดแค่เปลี่ยน With Worksheets("PrintReport") เป็น With Worksheets("PrintReport") เท่านี้เองเหลือเชื่อจริงๆค่ะ

ขอแก้คำผิดจาก With Worksheets("PrintReport") เป็น With ActiveSheet ค่ะ

อาจารย์คะจากไฟล์ตัวอย่างที่ส่ง Code ตามข้างล่างนี้

Code: Select all

Sub PasteData()
Dim rSource As Range
Dim rTarget As Range
Set rSource = Worksheets("Template").Range("A2:Q612")
Set rTarget = Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
    rSource.Copy
    rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
ได้ลองใส่ Code เป็นตามข้างล่าง

Code: Select all

Sub PasteData()
Dim rSource As Range
Dim rTarget As Range
With Worksheets("Template")
Set rSource = .Range("A2:Q612").Resize(.Range("D2"))
End With
Set rTarget = Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
    rSource.Copy
    rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
เช่นเดิมค่ะ Code Error ค่ะ มาขอความช่วยเหลือจากอาจารย์ อีกแล้วค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#49

Post by snasui »

:D ไม่ทราบว่าต้องการทำอะไรครับ กรณีใช้กับไฟล์เดิม เหตุใดไม่ใช้ Code ที่ผมส่งไปให้ครับ เนื่องจากผมได้ปรับให้ใช้กับไฟล์ตัวอย่างแล้ว

การเปลี่ยนเป็น

Code: Select all

Set rSource = .Range("A2:Q612").Resize(.Range("D2"))
ทราบความหมายหรือไม่ครับว่าหมายความว่าอย่างไร :?:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#50

Post by suka »

อาจารย์คะ Code ที่ให้มาตรงตามที่ต้องการแล้วค่ะ ก่อนหน้านี้สับสนมากไปเลยไม่ทันคิดถึง คอลัมน์ R:T ที่ชีท Tempplate จึงคิดว่า Code

Code: Select all

Set rSource = .Range("A2:Q2").Resize(.Range("T1"))
นี้ไม่น่าจะใช่ของไฟล์นี้จึงไม่ได้นำมาใช่ค่ะ
ชีท Template เซลล์ A2 สูตรไม่ถูกต้องครับ
หลังจากปรับสูตรทำผิดที่ชีท Template เซลล์ A2 และนำ Code ล่าสุดที่อาจารย์ให้มาใช้ได้ดีตรงตามที่ต้องการค่ะ
ขอบพระคุณมากค่ะ ขอให้อาจารย์มีสุขภาพทีดี พบแต่สิ่งดีๆมีความสุขมากๆ ค่ะ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#51

Post by suka »

อาจารย์คะ มีปัญหาขอคำแนะนำค่ะ จากไฟล์ตัวอย่างที่ชีท Form ได้บันทึก Macro ให้เพิ่มแถวและคัดลอกสูตรให้กับแถวที่เพิ่มเข้ามา
ต้องการสร้างปุ่มเพื่อคลิก ปัญหาคือที่ CommandButton1 ไม่สามารถทำให้ใช้กับแมโครได้ค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#52

Post by snasui »

:D ลองตามนี้ครับ
  • เข้าเมนู View
  • เลือก Toolbars > Control Toolbox
  • คลิกปุ่ม Design Mode (เครื่องมืออันแรกสุด)
  • คลิกขวา Command Button ที่สร้างไว้แล้ว > View Code โปรแกรมจะไปยังตำแหน่งในการเขียน Code
  • ไป Copy Code Macro ที่สร้างไว้แล้วมาวางไว้ที่ Code ของ Command Button ในข้อ 4
  • กลับมายัง Excel > คลิกปุ่ม Design Mode > ปิด Toolbar > ทดสอบคลิก Command Button > สังเกตดูผล
ถ้าจะให้สะดวกให้เลือกสร้าง Button จาก Forms แทนเลือกสร้างจาก Control Toolbox ครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#53

Post by suka »

ขอบคุณค่ะอาจารย์ ทำได้แล้วค่ะ

ขอรบกวนอีกเรื่องค่ะ ที่ชีท Form เซลล์ AB9 ไม่ต้องการให้เป็น #N/A หากที่ชีท Database คอลัมล์ S ยังไม่มีข้อมูลจะแก้ได้อย่างไรคะ

ขอบพระคุณมากๆๆค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#54

Post by snasui »

:D ที่เซลล์ AB5 คีย์สูตรตามด้านล่างครับ

=IF(ISNA(AC5),"",AC5-Y5+AA5)

Enter > Copy ลงด้านล่าง
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#55

Post by suka »

ขอบคุณมากค่ะอาจารย์ :lol:

อาจารย์คะ Code ด้านล่างนี้เมื่อคลิกปุ่มบันทึกข้อมูลจะเคลียร์เซลล์ H5:S9 และ Y5:AA9 ในชีท Form ให้ว่าง

Code: Select all

Sub PasteData()
Dim rSource As Range
Dim rTarget As Range
With Worksheets("Template")
    Set rSource = .Range("A2:S2").Resize(.Range("V1"))
End With
Set rTarget = Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
    rSource.Copy
    rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("Form").Range("H5:S9,Y5:AA9").ClearContents
End Sub
หากจะนำ Code ด้านล่างนี้ออกจากปุ่มบันทึกข้อมูล

Code: Select all

Sheets("Form").Range("H5:S9,Y5:AA9").ClearContents
แล้วสร้าง Button ใหม่เพิ่ม เพื่อคลิกเมื่อต้องการเคลียร์เซลล์ H5:S9 และ Y5:AA9 ในชีท Form ให้ว่าง
จะต้องปรับ Code อย่างไรเพื่อให้ใช้กับปุ่มที่สร้างขึ้นใหม่คะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#56

Post by snasui »

:D ลองใช้แบบไม่ต้องปรับแล้วยังครับ หากใช้แล้วมีปัญหาค่อยแจ้งมาอีกทีครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#57

Post by suka »

ค่ะอาจารย์ ปุ่มเคลียร์ที่จริงไม่ต้องปรับก็ใช้ได้ รีบถามก่อนลองใช้ค่ะ

ตอนนี้มีปัญหากับปุ่มแทรกแถวมาขออาจารย์ช่วยด้วยค่ะ ความต้องการคือเมื่อคลิกแล้วให้แทรกแถวเหนือบรรทัดที่คลิกแล้วคัดลอกสูตรให้กับบรรทัดใหม่ที่เพิ่มเข้ามาทั้งที่ชีท Form และที่ชีท Template ค่ะ
การคลิกมิใช่จำกัดแค่เซลล์ A9:AL9 อาจจะมีถึงเซลล์ A60:AL60 มากกว่าหรือน้อยกว่านี้ค่ะ

ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#58

Post by snasui »

:D มีเหตุผลใดต้องแทรกแถวครับ หากนำไปต่อด้านล่างข้อมูลจะมีประเด็นอะไรหรือไม่ครับ

และ Code ที่เขียนมาเองแล้วนั้นอยู่ที่ Module ไหน ชื่อ Procedure ใดครับ :?:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#59

Post by suka »

ค่ะอาจารย์ นำไปต่อด้านล่างข้อมูลได้ค่ะ

Code ที่เขียนอยู่ที่ Module2 ชื่อ Macro16 ค่ะ

ขอบคุณค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม

#60

Post by snasui »

:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Macro16()
    Range("A" & Rows.Count).End(xlUp) _
        .Resize(2, Columns.Count).FillDown
End Sub
Post Reply