Page 1 of 1

การใช้ User form สำหรับใส่ข้อมูลใน Cell และ Drop down list

Posted: Sun May 01, 2011 11:32 pm
by Panuwat
เรียนท่านอาจารย์ ผมขอเรียนสอบถามและขอความกรุณาให้อาจารย์แก้ปัญหาดังนี้
1.ตาม Sheet 1 ต้องการให้เมื่อคล๊กที่ปุ่ม Button1 จะปรากฏ Userform ให้ใส่ตัวเลขทศนิยม 2 ตำแหน่ง และเมื่อ กดปุ่ม OK ตัวเลขจะปรากฏใน Cell นี้ครับ แต่มีข้อแม้ว่า เมื่อคลิ๊กที่ปุ่ม Button 1 อีกครั้ง ตัวเลขที่อยู่ใน Cell นี้ จะปรากฏใน Userform เสมอ และเมื่อคีย์ตัวเลขใหม่ใน Userform ก็จะมาทับของเดิมใน cell นี้ครับ
เสมือนว่ามีการเปลี่ยนแปลงใน Cell นั้นๆ ครับ

2. ตาม Sheet 2 ต้องการให้เมื่อคลิ๊กที่ Drop down list ว่าเป็นเดือนอะไร ให้ cell เดือนนั้นๆ Active เป็นสีแดงขึ้นมา และเมื่อคลิ๊กเป็นเดือนอื่น เดือนที่ไม่ถูกเลือกก็จะกลับเป็นสีปกติครับ


ขอแสดงความนับถือ

Re: การใช้ User form สำหรับใส่ข้อมูลใน Cell และ Drop down li

Posted: Mon May 02, 2011 9:00 am
by snasui
:D ตามข้อ 1 ลองตาม Code นี้ครับ

Code: Select all

Private Sub CommandButton1_Click()
    [M4] = Inputscore.TextBox1
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    Inputscore.TextBox1 = [M4]
End Sub
ส่วนที่ Sheet2 สามารถใช้ Conditional Formatting ได้ครับ

โดยมีลำดับตามนี้ครับ

1. คลุม G3:R3
2. เข้าเมนู Format > Conditional Formatting
3. ช่อง Formula1 เลือก Formula
4. ช่องถัดมาคีย์
=MATCH(G$3,$G$3:$R$3,0)+1=$AJ$2
5. คลิกปุ่ม Format เพื่อจัด Format ตามต้องการ

ดูตามไฟล์แนบครับ

Re: การใช้ User form สำหรับใส่ข้อมูลใน Cell และ Drop down li

Posted: Mon May 02, 2011 10:26 pm
by Panuwat
ขอบพระคุณท่านอาจารย์มากครับ

ภาณุวัฒน์

Re: การใช้ User form สำหรับใส่ข้อมูลใน Cell และ Drop down li

Posted: Thu May 05, 2011 11:12 pm
by Panuwat
คามข้อ 1.
ตาม Code ที่อาจารย์ทำให้มาคือ
Private Sub CommandButton1_Click()
[M4] = Inputscore.TextBox1
Unload Me
End Sub

Private Sub UserForm_Initialize()
Inputscore.TextBox1 = [M4]
End Sub

ถ้าต้องบังคับให้ใส่ตัวเลขทศนิยม 2 ตำแหน่ง โดยมี Message เตือนกรณีใส่ผิดครับ รบกวนอาจารย์ดูให้หน่อยครับ


ขอแสดงความนับถือ

Re: การใช้ User form สำหรับใส่ข้อมูลใน Cell และ Drop down li

Posted: Fri May 06, 2011 6:51 am
by snasui
:D ตัวอย่างการปรับ Code เพื่อให้มีการคีย์จุดทศนิยมสองตำแหน่งตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    If Len(Mid(Inputscore.TextBox1, InStr(Inputscore.TextBox1, "."), 255)) <> 3 Then
        MsgBox "Check digit"
    Exit Sub
    End If
    [M4] = Inputscore.TextBox1
    Unload Me
End Sub