: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

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: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#14

by godman » Fri Feb 10, 2012 2:06 pm

ผมเจอแล้วครับ ขอบคุณครับ

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#13

by godman » Fri Feb 10, 2012 11:35 am

ใช้ได้เลยครับ ทำไมเก่งจัง
คำถามต่อมา สงสัยว่า พอกด enter ปั้บ ทำไมกระโดดไปช่อง สุดท้ายเลย ไม่ไล่ไปทีละอัน ตามลำดับ

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#12

by niwat2811 » Fri Feb 10, 2012 11:24 am

ลองเปลี่ยน
Private Sub cmdAdd_Click()
Dim 1Row As Long
Dim 1Trainer As Long
เป็น
Private Sub cmdAdd_Click()
Dim lRow As Long
Dim lTrainer As Long
ดูก่อนครับ

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#11

by snasui » Fri Feb 10, 2012 11:17 am

:D
snasui wrote: :D ช่วยทำ Code ให้เป็น Code ด้วยครับ จะได้สะดวกในการอ่านหรือ Copy ไปใช้ ดูตัวอย่างจากที่นี่ครับ viewtopic.php?f=3&t=1187...

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#10

by godman » Fri Feb 10, 2012 10:42 am

ขอความช่วยเหลือ ครับ 2 ชั่วโมงแล้วที่หาสาเหตุไม่ได้ คื เมื่อกดปุ่ม add ใน form เพื่อบันทึกข้อมูลลง database มันขึ้นว่า Syntax Error และยังไม่สามารถบันทึกข้อมูลได้ และ ผมอยากปรับความยาวของ combo box ที่ชื่อว่า cbotrainer ให้มันสั้นลง ผมไม่รู้ว่าต้องปรับที่ตรงใหน
Option Explicit

Private Sub cboHowToEval_Change()

End Sub

Private Sub cboOperation1_Change()

End Sub

Private Sub cboOperation2_Change()

End Sub

Private Sub cboOperation3_Change()

End Sub

Private Sub cboProduct_Change()

End Sub

Private Sub cboTrainer_Change()

End Sub

Private Sub txtClassTitle_Change()

End Sub

Private Sub txtCourseID_Change()

End Sub

Private Sub txtDay_Change()

End Sub

Private Sub txtFull_Change()

End Sub

Private Sub txtHour_Change()

End Sub

Private Sub txtSubClass_Change()

End Sub

Private Sub txtSubClassTitle_Change()

End Sub
Private Sub cmdAdd_Click()
Dim 1Row As Long
Dim 1Trainer As Long
Dim ws As Worksheet
Set ws = Worksheets("CourseData")

'find first empty row in database
lRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row

'check for a employee number
If Trim(Me.cboTrainer.Value) = "" Then
Me.cboTrainer.SetFocus
MsgBox "Please enter a employee number"
Exit Sub
End If

'copy the data to the database
With ws
.Cells(lRow, 1).Value = Me.cboTrainer.Value
.Cells(lRow, 2).Value = Me.cboTrainer.List(lTrainer, 1)
.Cells(lRow, 3).Value = Me.txtCourseID.Value
.Cells(lRow, 4).Value = Me.txtClassTitle.Value
.Cells(lRow, 5).Value = Me.txtSubClass.Value
.Cells(lRow, 6).Value = Me.txtSubClassTitle.Value
.Cells(lRow, 7).Value = Me.cboHowToEval.Value
.Cells(lRow, 8).Value = Me.txtFull.Value
.Cells(lRow, 9).Value = Me.txtDay.Value
.Cells(lRow, 10).Value = Me.txtHour.Value
.Cells(lRow, 11).Value = Me.cboProduct.Value
.Cells(lRow, 12).Value = Me.cboOperation1.Value
.Cells(lRow, 13).Value = Me.cboOperation2.Value
.Cells(lRow, 14).Value = Me.cboOperation3.Value


End With
'clear the data

Me.txtCourseID.Value = ""
Me.txtClassTitle.Value = ""
Me.txtSubClass.Value = ""
Me.txtSubClassTitle.Value = ""
Me.cboHowToEval.Value = "Select"
Me.txtFull.Value = ""
Me.txtDay.Value = ""
Me.txtHour.Value = ""
Me.cboProduct.Value = "Select"
Me.cboOperation1.Value = "Select"
Me.cboOperation2.Value = "Select"
Me.cboOperation3.Value = "Select"
Me.cboTrainer.Value = "Select"
Me.cboTrainer.SetFocus
End Sub

Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim cHowToEval As Range
Dim cProduct As Range
Dim cOperation As Range
Dim cTrainer As Range
Dim ws As Worksheet
Set ws = Worksheets("LookupLists")

Me.txtCourseID.Value = ""
Me.txtClassTitle.Value = ""
Me.txtSubClass.Value = ""
Me.txtSubClassTitle.Value = ""
Me.cboHowToEval.Value = "Select"
Me.txtFull.Value = ""
Me.txtDay.Value = ""
Me.txtHour.Value = ""
Me.cboProduct.Value = "Select"
Me.cboOperation1.Value = "Select"
Me.cboOperation2.Value = "Select"
Me.cboOperation3.Value = "Select"
Me.cboTrainer.Value = "Select"
Me.cboTrainer.SetFocus

End Sub
Attachments
IntriPlex Training Record System.xlsm
rev2
(42.91 KiB) Downloaded 24 times

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#9

by godman » Tue Feb 07, 2012 6:20 pm

ว้าว สุดยอด ขอบคุณครับ ที่ช่วยผม

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#8

by snasui » Tue Feb 07, 2012 4:21 pm

:D แก้ตรงด้านล่างระหว่าง Private กับ Sub ให้มีวรรคด้วยครับ

เดิม

Code: Select all

Option Explicit
PrivateSub cboProduct_Change()
End Sub
แก้เป็น

Code: Select all

Option Explicit
Private Sub cboProduct_Change()
End Sub
หรือลบทิ้งไปก็ได้เพราะว่าไมได้มี Code ใดอยู่ด้านใน

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#7

by godman » Tue Feb 07, 2012 3:00 pm

ผมได้แก้ไข code ในทุกสิ่งแล้วครับ แต่ผมสงสัยว่าทำไมมันขึ้น error ว่า invalid procedure ประมาณนี้ ขอความกรุณาชี้แนะด้วยคับว่าเขียนตรงใหนผิด

Code: Select all

Option Explicit
PrivateSub cboProduct_Change()
End Sub
Private Sub cboLocation_Change()
End Sub
Private Sub cboPart_Change()
End Sub

Private Sub cmdAdd_Click()
Dim lRow As Long
Dim lPart As Long
Dim ws As Worksheet
Set ws = Worksheets("PartsData")

'find  first empty row in database
lRow = ws.Cells(Rows.Count, 1) _
  .End(xlUp).Offset(1, 0).Row
  
lPart = Me.cboPart.ListIndex

'check for a part number
If Trim(Me.cboPart.Value) = "" Then
  Me.cboPart.SetFocus
  MsgBox "Please enter a part number"
  Exit Sub
End If

'copy the data to the database
With ws
  .Cells(lRow, 1).Value = Me.cboPart.Value
  .Cells(lRow, 2).Value = Me.cboPart.List(lPart, 1)
  .Cells(lRow, 3).Value = Me.cboLocation.Value
  .Cells(lRow, 4).Value = Me.CboProduct.Value
  .Cells(lRow, 5).Value = Me.txtDate.Value
  .Cells(lRow, 6).Value = Me.txtQty.Value
End With

'clear the data
Me.cboPart.Value = "Select"
Me.cboLocation.Value = "Select"
Me.CboProduct.Value = "Select"
Me.txtDate.Value = Format(Date, "Medium Date")
Me.txtQty.Value = 1
Me.cboPart.SetFocus

End Sub

Private Sub cmdClose_Click()
  Unload Me
End Sub

Private Sub Label1_Click()

End Sub

Private Sub txtDate_Change()

End Sub

Private Sub txtQty_Change()

End Sub

Private Sub UserForm_Initialize()
Dim cPart As Range
Dim cLoc As Range
Dim cPro As Range
Dim ws As Worksheet
Set ws = Worksheets("LookupLists")

Me.txtDate.Value = Format(Date, "Medium Date")
Me.txtQty.Value = 1
Me.cboPart.SetFocus
Me.cboPart.Value = "Select"
Me.cboLocation.Value = "Select"
Me.CboProduct.Value = "Select"

End Sub
Attachments
PartLocDBComboValtest1.xls
rev1
(79 KiB) Downloaded 14 times

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#6

by snasui » Tue Feb 07, 2012 12:48 pm

:D ช่วยทำ Code ให้เป็น Code ด้วยครับ จะได้สะดวกในการอ่านหรือ Copy ไปใช้ ดูตัวอย่างจากที่นี่ครับ viewtopic.php?f=3&t=1187

สำหรับ Error ที่เกิดขึ้น เนื่องจากชื่อของ Control กับที่ใช้ใน Code ไม่ตรงกัน ต้องเปลี่ยนให้ตรงกันก่อน เช่นตามภาพด้านล่าง ComboBox2 ต้องเปลี่ยนเป็น cboProduct เนื่องจากนำ Userform ของผูือื่นมาปรับ ใน Code หลาย ๆ ที่จึงอ้างถึง cboProduct และไม่รู้จัก ComboBox2 ครับ
Attachments
ComboBoxName.png
ComboBoxName.png (66.88 KiB) Viewed 129 times

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#5

by godman » Tue Feb 07, 2012 9:28 am

ตอนนี้ ผมได้เขียน code ในส่วนที่ผมต้องการเพิ่มคือ Shift (กะทำงาน) และ Product(ชื่อของสินค้า) แต่ปราฏว่ามัน error ขอความแนะนำว่าผมเขียนถูกต้องไหมครับ คือผมเพิ่มในส่วนนี้ไป
With ws
.Cells(lRow, 1).Value = Me.cboPart.Value
.Cells(lRow, 2).Value = Me.cboPart.List(lPart, 1)
.Cells(lRow, 3).Value = Me.cboLocation.Value
.Cells(lRow, 4).Value = Me.cboShift.Value ผม
.Cells(lRow, 5).Value = Me.cboProduct.Value ผม
.Cells(lRow, 6).Value = Me.txtDate.Value
.Cells(lRow, 7).Value = Me.txtQty.Value
End With

'clear the data
Me.cboPart.Value = "Select"
Me.cboLocation.Value = "Select"
Me.cboShift.Value = "Select" ผม
Me.cboProduct.Value = "Select" ผม
Me.txtDate.Value = Format(Date, "Medium Date")
Me.txtQty.Value = 1
Me.cboPart.SetFocus
Attachments
HrProfileForm_1.xls
re1
(167.5 KiB) Downloaded 6 times

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#4

by snasui » Mon Feb 06, 2012 7:32 pm

:D สำหรับ VBA แล้วจำเป็นต้องเขียน Code และปรับปรุงเองได้บ้างครับ เนื่องจากผมจะเน้นตอบเฉพาะที่ติดปัญหา กรณียังไม่เคยใช้ VBA ควรหาหนังสือมาอ่านและเริ่มบันทึก Macro เพื่อดูตัวอย่างการทำงานของ Code ซึ่งต้องค่อย ๆ เรียนรู้ครับ

หากจะให้เร็วกว่านั้นก็ต้องให้ผู้ที่มีความรู้เกี่ยวกับ VBA ช่วยปรับปรุงให้ ติดตรงไหนก็ค่อยมาถามกันได้เรื่อย ๆ ครับ :P

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#3

by godman » Mon Feb 06, 2012 6:28 pm

ขอบคุณครับ แต่ผมแกะ code ไม่ออก เพราะผมอยากให้เลือกที่ Shift ใน form แล้วข้อมูลของ Shift ซึ่งมาจากคอลัมพ์ F sheet lookuplist มาทำอย่างไรครับ ต่อยอดถึง เมื่อเลือก Product ก็ให้ข้อมูลในช่อง G ของชี้ต LOOKUPLIJST มาด้วย

เพราะผมสังเกตดูว่า เมื่อเลือก shift แล้วรายการที่แสดงเหมือนกันกับ อันข้างบน เช่นเดียวกันกับ product ก็เหมือนัน สาเหตุเพราะผมอยากปรับสไตล์ให้เข้ากับองค์กรผม ผมเลย copy มาแต่ไม่ทราบจะไปแก้ไข code ที่ตรงใหน

Re: สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#2

by snasui » Mon Feb 06, 2012 4:08 pm

:D ตรง Sub UserForm_Initialize ให้ทำการ Mark Comment ตามด้านล่าง แล้วทดสอบดูใหม่ครับ

Code: Select all

Private Sub UserForm_Initialize()
    Dim cPart As Range
    Dim cLoc As Range
    Dim ws As Worksheet
    Set ws = Worksheets("LookupLists")
    
    'Me.txtDate.Value = Format(Date, "Medium Date")
    'Me.txtQty.Value = 1
    Me.cboPart.SetFocus
    Me.cboPart.Value = "Select"
    Me.cboLocation.Value = "Select"
    
End Sub

สร้าง form ในเอ็กเซลแล้วเพิ่มเติมมันขึ้นข้อความแบบนี้

#1

by godman » Mon Feb 06, 2012 3:54 pm

อาจารย์ครับ ผมได้ฟอร์มและอยากจะได้แบบนี้ คือ กดปั้บแล้วแสดงฟอร์มให้ user กรอก แล้วข้อมูลก็ไปลงใน pivot table แต่พอผมไปดัดแปลงฟอร์มมัน error ขอความช่วยแหลือแก้ไข code ให้ด้วยครับ ขอบคุณครับ
Attachments
HrProfileForm.xls
ไฟล์ที่ผมลองแก้ไขเพิ่มเติม
(165 KiB) Downloaded 31 times

Top