: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

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: บันทึกเวลาโดยการเขียน VBA

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

#26

by Ueng999 » Sun Mar 24, 2013 10:47 am

ครบตามต้องการสำหรับการบันทึกเวลาแล้ว ขอบคุณมากมากค่ะ :thup:

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

#25

by snasui » Fri Mar 22, 2013 10:35 pm

:D Code ที่แนบมาไม่ทราบว่าติดขัดตรงไหนครับ :?:

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

#24

by Ueng999 » Fri Mar 22, 2013 10:33 pm

ลองทำแล้วได้ Code ตามด้านล่างค่ะ ช่วยแนะเพิ่มเติมค่ะ

Code: Select all

Public Sub CheckBox1_Click()
ActiveSheet.Protect Password:="1"
    ActiveSheet.Unprotect Password:="1"
    If CheckBox1.Value = True Then
        Range("D" & Selection.Row) = Now()
    Else
        Range("E" & Selection.Row) = Now()
    End If
        ActiveSheet.Protect Password:="1"
        ThisWorkbook.Save
    End Sub

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

#23

by snasui » Fri Mar 22, 2013 7:36 pm

:D ลองบันทึก Macro เพื่อดูว่า Save แล้วได้ Code เป็นเช่นไร แล้วค่อยนำ Code มาปรับใช้ ติดตรงไหนค่อยมาถามกันต่อครับ

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

#22

by Ueng999 » Fri Mar 22, 2013 5:42 pm

ต้องการ auto save หลังจาก Check Box จะต้อง เพิ่ม Code อย่างไรค่ะ

Code: Select all

Public Sub CheckBox1_Click()
ActiveSheet.Protect Password:="1"
    ActiveSheet.Unprotect Password:="1"
    If CheckBox1.Value = True Then
        Range("D" & Selection.Row) = Now()
    Else
        Range("E" & Selection.Row) = Now()
    End If
    ActiveSheet.Protect Password:="1"
End Sub

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

#21

by Ueng999 » Fri Mar 22, 2013 5:38 pm

ถ้าต้องการให้มี auto save หลังจาก คลิก Check Box แล้ว ต้องเพิ่ม Code อย่างไรค่ะ

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

#20

by Ueng999 » Fri Mar 22, 2013 5:16 pm

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

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

#19

by snasui » Wed Mar 20, 2013 9:48 pm

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

Link ที่ผมแนบไปด้วยในโพสต์ก่อนหน้าน่าจะมีตัวอย่างให้ดูเกี่ยวกับการ Protect แล้วใส่ Password ลองศึกษาดูครับ

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

#18

by Ueng999 » Wed Mar 20, 2013 9:28 pm

ตามที่แนบไฟล์และ Code มาข้างต้น เมื่อคลิกเซลล์ A คลิก Check box วันที่และเวลาขึ้นที่เซลล์ A และไม่สามารถแก้ไขได้ตรงตามความต้องการค่ะ แต่การ Protect ก็ยกเลิกได้โดยที่ไม่ต้องใช้ Password จะแก้ยังไงค่ะ

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

#17

by snasui » Wed Mar 20, 2013 9:10 pm

:roll: คำถามคืออะไรครับ :?:

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

#16

by Ueng999 » Wed Mar 20, 2013 9:05 pm

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 49 times

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

#15

by snasui » Wed Mar 20, 2013 7:00 pm

: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

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

#14

by Ueng999 » Wed Mar 20, 2013 5:13 pm

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

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

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

#13

by Ueng999 » Wed Mar 20, 2013 12:38 pm

ลองแนบไฟล์มาให้ใหม่ค่ะ เปลี่ยน 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 34 times

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

#12

by joo » Wed Mar 20, 2013 10:31 am

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

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

#11

by Ueng999 » Wed Mar 20, 2013 9:19 am

ไฟล์มีขนาดใหญ่เกินไป เกิน 300 kib.ค่ะ

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

#10

by snasui » Tue Mar 19, 2013 11:00 pm

:shock: แนบไฟล์ไม่ได้เนื่องจากสาเหตุใดครับ :?:

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

#9

by Ueng999 » Tue Mar 19, 2013 10:56 pm

ขอบคุณสำหรับ Code ค่ะ ลองทำแล้ว ขอเพิ่มอีกนิดค่ะ เมื่อ ติก Check Box ที่เชลล์ E3 วันที่และเวลาปัจจุบันขึ้นที่เชลล์ D3 โดยอัตโนมัติ แบบไม่ต้องคลิกที่เชลล์ D3 ก่อน และใช้การ Protect sheet แต่เมื่อติก Check Box ขึ้น Run-Time Error แทน ( ต้องการให้เซลล์ D3 ไม่สามารถพิมพ์หรือแก้ไขไดๆ ได้ แต่เมื่อติก Check Box ที่เชลล์ E3 ให้วันที่และเวลาปัจจุบันสามารถขึ้นได้) แนบ file ไม่ได้ค่ะ

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

#8

by snasui » Tue Mar 19, 2013 6:44 am

: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

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

#7

by Ueng999 » Mon Mar 18, 2013 11:10 pm

แนบ Files มาให้ใหม่ค่ะ ความต้องการคือ เมื่อติกถูกที่ Check Box ที่เซลล์ E3 วันที่และเวลาปัจจุบันจะขึ้นที่เซลล์ D3 ค่ะ
Attachments
ลงเวลา.xlsm
(38.8 KiB) Downloaded 56 times

Top