: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

บันทึกเวลาโดยการเขียน VBA

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

บันทึกเวลาโดยการเขียน VBA

#1

Post by Ueng999 »

ต้องการเขียนเมโครเพื่อทำ Check Box เชลล์ E และ G เมื่อใส่เครื่องหมายถูก เวลาและวันที่ปัจจุบันจะขี้นที่เชลล์ D และ F และป้องกันการเปลี่ยนแปลงในเชลล์ D และ F เนื่องจากจะเป็นการลงเวลาของพนักงาน ตาม File ที่แนบมาค่ะ ถ้าสูตรที่ใช้ไม่เหมาะหรือมีสูตรที่สมควรกว่ากรุณาแนะนำด้วยค่ะ
Attachments
ลงเวลา.xlsx
(12.56 KiB) Downloaded 43 times
User avatar
tupthai
Bronze
Bronze
Posts: 302
Joined: Sat Feb 04, 2012 2:49 pm

Re: บันทึกเวลาโดยการเขียน VBA

#2

Post by tupthai »

ช่วยแนบแฟ้มนามสกุล .xlsm หรือ .xls ครับ
จะได้ดู code ได้ครับ
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#3

Post by Ueng999 »

เปลี่ยนนามสกุลให้แล้วคะ เพิ่มอีกหัวข้อคะ ต้องการให้ช่อง D และ F ไม่สามารถเปลี่ยนข้อมูลได้คะ
Attachments
ลงเวลา.xlsm
(12.56 KiB) Downloaded 30 times
ลงเวลา.xls
(12.56 KiB) Downloaded 23 times
สมุดงาน2.xlsm
(25.9 KiB) Downloaded 22 times
Last edited by Ueng999 on Sat Mar 16, 2013 10:11 pm, edited 2 times in total.
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: บันทึกเวลาโดยการเขียน VBA

#4

Post by snasui »

:D ไม่สามารถเปิดไฟล์ที่แนบมาได้ครับ ไม่ทราบว่าเปลี่ยนนามสกุลไฟล์ด้วยวิธีใดครับ

กรณีใช้ VBA จำเป็นต้องเขียนมาก่อนตามกฎข้อ 5 ด้านบนครับ :roll:
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#5

Post by Ueng999 »

ลองเปิดอีกทีคะ
Attachments
สมุดงาน2.xlsm
(25.9 KiB) Downloaded 38 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: บันทึกเวลาโดยการเขียน VBA

#6

Post by snasui »

Ueng999 wrote:ต้องการเขียนเมโครเพื่อทำ Check Box เชลล์ E และ G เมื่อใส่เครื่องหมายถูก เวลาและวันที่ปัจจุบันจะขี้นที่เชลล์ D และ F และป้องกันการเปลี่ยนแปลงในเชลล์ D และ F เนื่องจากจะเป็นการลงเวลาของพนักงาน ตาม File ที่แนบมาค่ะ ถ้าสูตรที่ใช้ไม่เหมาะหรือมีสูตรที่สมควรกว่ากรุณาแนะนำด้วยค่ะ


:D การไม่ให้แก้ไขได้ให้ใช้การ Protect ครับ

จากที่อธิบายมายังไม่ชัดเจน ช่วยอธิบายใหม่ว่าต้องการจะทำอะไร

คลิกที CheckBox ใดแล้วให้เวลาขึ้นที่เซลล์ไหน วันที่ปัจจุบันขึ้นที่เซลล์ไหน :?:

D และ F ที่พูดถึงเหมือนจะต้องการให้แสดงเฉพาะเวลาเท่านั้น อ้างถึงที่เขียนมาด้านบน ไม่พบว่ามี CheckBox ที่คอลัมน์ G
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#7

Post by Ueng999 »

แนบ Files มาให้ใหม่ค่ะ ความต้องการคือ เมื่อติกถูกที่ Check Box ที่เซลล์ E3 วันที่และเวลาปัจจุบันจะขึ้นที่เซลล์ D3 ค่ะ
Attachments
ลงเวลา.xlsm
(38.8 KiB) Downloaded 57 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: บันทึกเวลาโดยการเขียน VBA

#8

Post by snasui »

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

Code: Select all

Public Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
        Range("D" & Selection.Row) = Now()
    Else
        Range("D" & Selection.Row) = ""
    End If
End Sub
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#9

Post by Ueng999 »

ขอบคุณสำหรับ Code ค่ะ ลองทำแล้ว ขอเพิ่มอีกนิดค่ะ เมื่อ ติก Check Box ที่เชลล์ E3 วันที่และเวลาปัจจุบันขึ้นที่เชลล์ D3 โดยอัตโนมัติ แบบไม่ต้องคลิกที่เชลล์ D3 ก่อน และใช้การ Protect sheet แต่เมื่อติก Check Box ขึ้น Run-Time Error แทน ( ต้องการให้เซลล์ D3 ไม่สามารถพิมพ์หรือแก้ไขไดๆ ได้ แต่เมื่อติก Check Box ที่เชลล์ E3 ให้วันที่และเวลาปัจจุบันสามารถขึ้นได้) แนบ file ไม่ได้ค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: บันทึกเวลาโดยการเขียน VBA

#10

Post by snasui »

:shock: แนบไฟล์ไม่ได้เนื่องจากสาเหตุใดครับ :?:
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#11

Post by Ueng999 »

ไฟล์มีขนาดใหญ่เกินไป เกิน 300 kib.ค่ะ
joo
Gold
Gold
Posts: 1213
Joined: Sat Apr 17, 2010 3:50 pm

Re: บันทึกเวลาโดยการเขียน VBA

#12

Post by joo »

:D ให้แนบไฟล์ที่เป็นตัวแทนของข้อมูลจริงมาครับ พร้อมระบุเงื่อนไขและคำตอบที่ต้องการให้ใช้เจน
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#13

Post by Ueng999 »

ลองแนบไฟล์มาให้ใหม่ค่ะ เปลี่ยน Code เล็กน้อยดังนี้ค่ะ

Public Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("D" & Selection.Row) = Now()
Else
Range("E" & Selection.Row) = Now()
End If
End Sub

ก่อนอื่นขอพูดถึงลำดับการทำงานก่อน
คลิกเชลล์ A3ติกเครื่องหมายถูกที่ CheckBox วันที่และเวลาปัจจุบันจะขึ้นที่ เชลล์ A3
คลิกเซลล์ B3ติกเอาหมายถูกออกจาก CheckBox วันที่และเวลาปัจจุบันจะขึ้นที่ เชลล์ B3
ต้องการให้ วันที่และเวลาปัจจุบันที่ปรากฎขึ้นที่เซลล์ A3 และ B3 ไม่สามารถแก้ไขได้
Attachments
ลงเวลา.rar
(26.82 KiB) Downloaded 35 times
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#14

Post by Ueng999 »

เขียนชื่อเชลล์ผิด เขียนมาใหม่ค่ะ

Public Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("A" & Selection.Row) = Now()
Else
Range("B" & Selection.Row) = Now()
End If
End Sub

ก่อนอื่นขอพูดถึงลำดับการทำงานก่อน
คลิกเชลล์ A3ติกเครื่องหมายถูกที่ CheckBox วันที่และเวลาปัจจุบันจะขึ้นที่ เชลล์ A3
คลิกเซลล์ B3ติกเอาหมายถูกออกจาก CheckBox วันที่และเวลาปัจจุบันจะขึ้นที่ เชลล์ B3
ต้องการให้ วันที่และเวลาปัจจุบันที่ปรากฎขึ้นที่เซลล์ A3 และ B3 ไม่สามารถแก้ไขได้
Attachments
ลงเวลา.rar
(26.82 KiB) Downloaded 25 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: บันทึกเวลาโดยการเขียน VBA

#15

Post by snasui »

:D ลองตามนี้ครับ

Code: Select all

Public Sub CheckBox1_Click()
    ActiveSheet.Unprotect
    If CheckBox1.Value = True Then
        Range("A" & Selection.Row) = Now()
    Else
        Range("B" & Selection.Row) = Now()
    End If
    ActiveSheet.Protect
End Sub
ดูเพิ่มเติมที่นี่ครับ Protect

สำหรับการโพสต์ Code ให้แสดงเป็น Code ดูที่นี่ครับ http://www.snasui.com/viewtopic.php?f=6&t=1187
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#16

Post by Ueng999 »

Code: Select all

Public Sub CheckBox1_Click()
    ActiveSheet.Unprotect Password:="1"
    If CheckBox1.Value = True Then
        Range("A" & Selection.Row) = Now()
    Else
        Range("B" & Selection.Row) = Now()
    End If
    ActiveSheet.Protect
End Sub
Attachments
ลงเวลา.rar
(28.78 KiB) Downloaded 50 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: บันทึกเวลาโดยการเขียน VBA

#17

Post by snasui »

:roll: คำถามคืออะไรครับ :?:
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#18

Post by Ueng999 »

ตามที่แนบไฟล์และ Code มาข้างต้น เมื่อคลิกเซลล์ A คลิก Check box วันที่และเวลาขึ้นที่เซลล์ A และไม่สามารถแก้ไขได้ตรงตามความต้องการค่ะ แต่การ Protect ก็ยกเลิกได้โดยที่ไม่ต้องใช้ Password จะแก้ยังไงค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: บันทึกเวลาโดยการเขียน VBA

#19

Post by snasui »

:shock: Code ที่ยกมา ตอน Protect ไม่ได้ใส่ Password ไว้ เมื่อ Unprotect ก็ไม่จำเป็นต้องกรอก Password ซึ่งก็เป็นปกติครับ

Link ที่ผมแนบไปด้วยในโพสต์ก่อนหน้าน่าจะมีตัวอย่างให้ดูเกี่ยวกับการ Protect แล้วใส่ Password ลองศึกษาดูครับ
Ueng999
Member
Member
Posts: 87
Joined: Thu Mar 14, 2013 1:36 pm
Excel Ver: Version 2301, 365

Re: บันทึกเวลาโดยการเขียน VBA

#20

Post by Ueng999 »

ใช้การ Protect ได้แล้ว :cp: ขอบคุณมากค่ะ
Post Reply