Page 1 of 1
รบกวนขอ Code ให้ textbox ให้ขึ้นกับ combobox ที่เลือก
Posted: Tue Aug 16, 2011 2:56 pm
by Kitiyaporn
ได้ลองทำ Code ให้ textbox แสดงค่าตาม combobox2 ที่เลือกใน userform1 ค่ะ
แต่ทำได้ค่าอันเดียวคือ textbox3 ส่วนอันอื่น ขอใส่โค้ดเหมือนเดิมกลับขึน debug ไม่ทราบว่าต้องทำอย่างไรต่อ
จึงอยากขอสูตรให้ textbox4, textbox5, textbox6, textbox7 ได้แสดงค่าและตัวอักษรตาม ใน worksheets("Emission factor_User")
ในแต่ละColumn ที่ตรงกับหัวข้อนั้นๆ ค่ะ
ตอนนี้ได้ลองเขียน Custom ใน ComboBox1 ในหน้า worksheets("Emission factor_User") ให้ userform1.show
แต่อยากขอโค้ดสำหรับให้ค่าที่แสดงใน userform1.combobox2 ไปแสดงที่ range("xMaterialInex")ด้วย
พร้อมกับแสดงค่าใน textbox3 ใน range("xMaterialInex2") ด้วยค่ะ ภายหลังกดปุ่ม update ใน userform1 ค่ะ
Re: รบกวนขอ Code ให้ textbox ให้ขึ้นกับ combobox ที่เลือก
Posted: Tue Aug 16, 2011 6:59 pm
by snasui

ผมปรับ Code สำหรับการ Lookup ค่ามาแสดงให้แล้วตามด้านล่าง
Code: Select all
Private Sub ComboBox2_Change()
With Worksheets("emission factor_User")
TextBox3.Value = Application.VLookup(Me.ComboBox2, .Range("D9:IV46"), 6, False)
TextBox4.Value = Application.VLookup(Me.ComboBox2, .Range("D9:IV46"), 9, False)
TextBox5.Value = Application.VLookup(Me.ComboBox2, .Range("D9:IV46"), 10, False)
TextBox6.Value = Application.VLookup(Me.ComboBox2, .Range("D9:IV46"), 8, False)
End With
End Sub
และ Code ด้านล่างตก End If ตัวสุดท้ายไป ไม่ทราบว่าบังเอิญไปลบหรือไม่ครับ
Code: Select all
Private Sub ComboBox1_Change()
If Range("xMaterialInex") = "Custom" Then
UserForm1.Show
Range("xMaterialInex") = UserForm1.ComboBox2.Value
Range("xMaterialInex").NumberFormat = "General "" (Custom)"""
Sheets("Emission Factor_User").Range("xMaterialInex2").Value = UserForm1.TextBox3.Value
End If
If Range("xMaterialInex") = "<--select data-->" Then
Sheets("Emission Factor_User").Range("xMaterialInex2").Value = 4.1256
ElseIf Range("xMaterialInex") = "Plastic" Then
Sheets("Emission Factor_User").Range("xMaterialInex2").Value = 0.8743
ElseIf Range("xMaterialInex") = "Paper" Then
Sheets("Emission Factor_User").Range("xMaterialInex2").Value = 1.345
ElseIf Range("xMaterialInex") = "Glass" Then
Sheets("Emission Factor_User").Range("xMaterialInex2").Value = 0.2103
End If
End Sub
Kitiyaporn wrote:ตอนนี้ได้ลองเขียน Custom ใน ComboBox1 ในหน้า worksheets("Emission factor_User") ให้ userform1.show
แต่อยากขอโค้ดสำหรับให้ค่าที่แสดงใน userform1.combobox2 ไปแสดงที่ range("xMaterialInex")ด้วย
พร้อมกับแสดงค่าใน textbox3 ใน range("xMaterialInex2") ด้วยค่ะ ภายหลังกดปุ่ม update ใน userform1 ค่ะ
ลองดู Code ตามด้านล่างครับ
Code: Select all
Private Sub CommandButton1_Click()
'UserForm2.ComboBox2.Value = Worksheets("INPUT_STANDARD").Range("cb_Liner_Body1_1")
With Worksheets("Emission Factor_User")
.Range("xMaterialInex") = UserForm1.ComboBox2
.Range("xMaterialInex2") = UserForm1.TextBox3
End With
Unload Me
End Sub
Re: รบกวนขอ Code ให้ textbox ให้ขึ้นกับ combobox ที่เลือก
Posted: Wed Aug 17, 2011 9:55 am
by Kitiyaporn
ขอบคุณมากนะคะ ทำได้แล้วค่ะ ขอบคุณจริงๆ
รบกวนช่วยแก้ไข Code สำหรับลบและแก้ไขข้อมูลใน listbox ค่ะ
Posted: Thu Aug 18, 2011 10:48 am
by Kitiyaporn
เมื่อครั้งที่แล้วที่อาจารย์ช่วยเขียนโค้ดใหม่ให้ใช้ได้แล้วค่ะ แต่ตอนนี้เกิดปัญหาคือ
ได้ลองเขียนโค้ดสำหรับ Delete และ Edit ข้อมูลออกจาก listbox แต่ไม่สามารถทำได้ค่ะ
คืออยากให้เมื่อกดปุ่ม Commandbutton "Delete item" แล้ว แถวใน listbox1 ที่ถูกเลือกจะถูกลบไป และข้อมูลในSheet ที่ดึงมาคือ "Emission Factor_User" ในชื่อที่เลือกก็จะถูกลบไปทั้งแถวเช่นกันค่ะ
และเมื่อกดปุ่มCommandbutton "Modify Details" Userform3 ก็จะ show ขึ้นโดยให้ "txtNameRaw2" เป็นชื่อเดียวกับ listbox ที่เลือก แล้วเมื่อกรอกข้อมูลด้านล่างเสร็จ ให้ไปแก้ไขในในSheet "Emission Factor_User" เป็นแถวเดียวกับชื่อที่ต้องการให้ Modify ใหม่ค่ะ
ปล. สูตรที่เขียนไว้ก่อนหน้าได้มาจากการ Search หาใน internet ค่ะ แล้วเอามาประยุกต์ใส่ ดิฉันมีพื้นฐานเขียน VBA อ่านหนังสือเท่านั้น สูตรบางอย่างที่เขียน
ใน internet ก็ดูยากเกินไป ไม่เข้าใจ รบกวนอาจารย์ช่วยดูปัญหานี้ให้หน่อยนะคะ
Re: รบกวนขอ Code ให้ textbox ให้ขึ้นกับ combobox ที่เลือก
Posted: Thu Aug 18, 2011 9:05 pm
by snasui

สำหรับการ Delete ลองทดสอบ Code ตามด้านล่างครับ
คิดว่าการ Update คงสามารถทำได้เองโดยไม่ยาก
Code: Select all
Private Sub CommandButton4_Click()
Dim lng As Long
Answer = MsgBox("Are you sure you want to delete data from database?", 4 + 48, "Delete database")
If Answer = 6 Then
'ListBox1.Items.Remove (ListBox1.SelectedItem)
lng = Application.Match(ListBox1.Value, Worksheets("Emission Factor_User").Range("D:D"), 0)
Worksheets("Emission Factor_User").Rows(lng).Delete
Unload Me
ElseIf Answer = 7 Then
Unload Me
Exit Sub
End If
End Sub
รบกวนช่วยแก้ไข Code สำหรับลบและแก้ไขข้อมูลใน listbox ค่ะ
Posted: Fri Aug 19, 2011 2:30 pm
by Kitiyaporn
ลองทดสอบโค้ด Delete แล้วค่ะ แต่มันขึ้น Debug ที่ ComboBox1 ค่ะ Sheet"Emission Factor_User" ตรง Userform1.show
ไม่ทราบว่าต้องแก้ไขยังไงค่ะ ส่วนการUpdate ข้อมูลยังทำไม่ได้เลยค่ะ แค่ให้ txtNameRaw2 ใน userform3 ขึ้นตาม listbox ที่เลือก
ไม่รู้ว่าจะใช้โค้ดอะไรค่ะ ลองเขียนโค้ดแล้วแต่มันขึ้นแค่มันัดแรกของ listbox1 ไม่ยอมขึ้นตาม item ที่เลือกค่ะ
รบกวนหน่อยนะคะ ขอบคุณค่ะ
Re: รบกวนขอ Code ให้ textbox ให้ขึ้นกับ combobox ที่เลือก
Posted: Fri Aug 19, 2011 10:32 pm
by snasui

ผมทดสอบแล้วสามารถ Delete ได้เป็นปกติ ช่วยจับภาพที่ติดปัญหาและวิธีการทำงานที่บอกว่าติดปัญหาว่ามีลำดับอย่างไร จะได้ทดสอบตามขั้นตอนนั้นครับ