: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

สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

#1

Post by voravit »

QA_NetPay_จ่ายสุทธิ.xlsm
รบกวน สอบถาม code สำหรับ Format ตัวเลข ครับ
ผมทำตาม รูปแบบ ด้านล่าง ถ้า กรอกตัวเลข เกิน 10,000.00 รูปแบบ ที่ออกมาจะไม่ เป็น
รูปแบบปกติทั่วไป อย่าง เช่น 23,567.89 เป็นต้น
การใช้งานปกติ ตัวเลขที่ต้องกรอก สูงสุด หลักแสน ครับ

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

#2

Post by voravit »

Code ที่ใช้อยู่ และ ขอช่วยปรับแก้ครับ

Code: Select all

Private Sub txb2_Change()
If txb2.Value > 999 Then txb2.Value = Format(txb2.Value, ("#,###.##"))
End Sub
ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

#3

Post by snasui »

:D ตรง Format ลองปรับเป็น Format(txb2.Value, ("#,##0.00")) ครับ
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

#4

Post by voravit »

ผมเปลี่ยน เงื่อนไข ตาม คำแนะนำที่ให้มา แต่ ผลออกมา ก็ยังคงเหมือนเดิม ผมก็เลยลอง ปรับ code เป็น
ผล คือ ถ้า จำนวนเป็น สำหรับ หลักหมื่น ผลคือได้ แต่ หลักพัน และ หลักแสน ผลเครื่องหมายคั่น หลักพันได้ แต่ ทศนิยมไม่ได้ครับ

และ ขอสอบถามอีกข้อครับ คือ
สูตร ที่ให้แสดงค่า ใน txb5 คือ
txb5.Value = (txb1.Value * txb2.Value) - (txb3.Value) + (txb4.Value)
ถ้า เผลอลืมกรอก ข้อมูลลง ใน txb1 หรือ txb2 แล้ว ไปสั่งให้คำนวน ก็จะ คำนวนไม่ได้ และ ขึ้น debug
จะต้อง เพิ่ม หรือ แก้ไข code อย่างไร ที่ ถ้า txb1 ยังไม่ได้ กรอก จะข้ามไป และ ใช้คำสั่ง อื่นๆไม่ได้ ครับ
ขอบคุณครับ

Code: Select all

Private Sub txb2_Change()
If txb2.Value > 999 And txb2.Value < 10000 Then txb2.Value = Format(txb2.Value, ("#,##0"))
If txb2.Value > 9999 And txb2.Value < 100000 Then
txb2.Value = Format(txb2.Value, ("##,##0.##"))
End If
If txb2.Value > 99999 And txb2.Value < 1000000 Then
txb2.Value = Format(txb2.Value, ("###,##0"))
End If
End Sub

Code: Select all

txb5.Value = (txb1.Value * txb2.Value) - (txb3.Value) + (txb4.Value) 
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

#5

Post by snasui »

voravit wrote:ผมเปลี่ยน เงื่อนไข ตาม คำแนะนำที่ให้มา แต่ ผลออกมา ก็ยังคงเหมือนเดิม ผมก็เลยลอง ปรับ code เป็น
ผล คือ ถ้า จำนวนเป็น สำหรับ หลักหมื่น ผลคือได้ แต่ หลักพัน และ หลักแสน ผลเครื่องหมายคั่น หลักพันได้ แต่ ทศนิยมไม่ได้ครับ
:D ให้ใช้ Event ที่เป็น AfterUpdate แทน Change ครับ เป็น

Code: Select all

Private Sub txb2_AfterUpdate()
    txb2.Value = Format(txb2.Value, "#,##0.00")
End Sub
voravit wrote:สูตร ที่ให้แสดงค่า ใน txb5 คือ
txb5.Value = (txb1.Value * txb2.Value) - (txb3.Value) + (txb4.Value)
ถ้า เผลอลืมกรอก ข้อมูลลง ใน txb1 หรือ txb2 แล้ว ไปสั่งให้คำนวน ก็จะ คำนวนไม่ได้ และ ขึ้น debug
จะต้อง เพิ่ม หรือ แก้ไข code อย่างไร ที่ ถ้า txb1 ยังไม่ได้ กรอก จะข้ามไป และ ใช้คำสั่ง อื่นๆไม่ได้ ครับ
ขอบคุณครับ
ตัวอย่างการปรับ Code ครับ

Code: Select all

txb5.Value = Val(txb1.Value) * Val(txb2.Value) - Val(txb3.Value) + Val(txb4.Value)
สำหรับเครื่องหมาย # ที่ใช้ในการกำหนด Format จะแทนตัวเลขทุกตัวที่จำเป็นต้องให้แสดงหากอยู่ในตำแหน่งที่เป็นสาระสำคัญ ยกตัวอย่างเช่น

หากกำหนด Format เป็น #,###.##

1000.10 ผลลัพธ์จะได้เป็น 1,000.1 เลข 0 สุดท้ายจะหายไปเพราะไม่ใช่ตำแหน่งที่เป็นสาระสำคัญตามประเด็นนี้
01000.10 ผลลัพธ์จะแสดงเป็น 1,000.1 เลข 0 ด้านหน้าและด้านหลังจะหายไป พราะไม่ใช่ตำแหน่งที่เป็นสาระสำคัญตามประเด็นนี้

ตัวอย่างการกำหนด Format ทั้งหลายสามารถดูได้จากการคลิกขวาในเซลล์ใด ๆ แล้วเข้าเมนู Format Cells > Number > Custom
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

#6

Post by voravit »

ขอบคุณครับ
ผมใช้ code ที่ให้มาปรับอีกเล็กน้อย ตอนนี้แก้ปัญหาได้แล้วครับ
ขอบคุณเป็นอย่างสูงครับ

Code: Select all

txb5.Value = Val((txb1.Value) * (txb2.Value)) - Val(txb3.Value) + Val(txb4.Value)
You do not have the required permissions to view the files attached to this post.
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

#7

Post by voravit »

ขอ สอบถามเพิ่มเติม ครับ
ผมทำไฟล์นี้ ด้วย excel 2010 บน windows 7 ครับ แต่ พอนำไฟล์นี้ไปเปิดใช้ ด้วย excel 2010 บน windows XP ปรากฏว่าใช้ไม่ได้
คือ
ส่วนที่ใช้ DTpicker และ textbox ที่ให้ Format ตัวเลข แก้ไขเบื้องต้น คือ ยกเลิกการ ใช้ DTpicker มาเป็นการกรอก วัน เดือน ปี แบบทั่วไป
และ ยกเลิก Format ตัวเลขที่ต้องการให้เป็น 12,345.00 กลับมาเป็น 12345
อยากสอบถามว่าถ้าต้องการให้ ตัวเลข เป็น 12,345.00 เมื่อเปิดไฟล์นี้ บน Windows จะต้อง เขียน code อย่างไร ครับ
ขอบคุณครับ

Code: Select all

Private Sub txb4_Change()
If txb4.Value < 1000 Then txb4.Value = Format(txb4.Value, "#00.00")
If txb4.Value > 999 Then txb4.Value = Format(txb4.Value, "#,##0.00")
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

#8

Post by snasui »

:D ให้ใช้ Event After Update แทน Event Change เหมือนที่ผมตอบไปแล้วตามด้านบน

การเปลี่ยน Format ใน Form ควรเปลี่ยนเมื่อเปิด Form ไม่จำเป็นต้องเปลี่ยนตั้งแต่เปิดไฟล์ การเปลี่ยนเมื่อเปิด Form ให้กำหนดที่ UserForm_Initialize ครับ เช่น

Code: Select all

Private Sub UserForm_Initialize()
   userform1.textbox1.text = format(textbox1.text,"#,##0.00")
End Sub
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: สอบถาม Code Vba สำหรับ ใช้ Format ตัวเลขใน Textbox

#9

Post by voravit »

ขอบคุณครับ เอาโค็ด ที่แนะนำไปปรับใช้ได้แล้วครับ
Post Reply