: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

ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
titus
Member
Member
Posts: 89
Joined: Sun Aug 24, 2014 1:34 pm

ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#1

Post by titus »

สอบถามเพื่อนสมาชิกครับ (กดปุ่ม เบิกลูกใหญ่)
ต้องการให้ Text box(จำนวน) แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox (Bat เหล็ก)
คล้ายๆ สูตร Vlook up

Code: Select all

Private Sub txtq_Change()
On Error Resume Next
With Application.WorksheetFunction
        txtq.Value = .VLookup(Val(cbbat.Text), Sheets("J01").Range("DATAJ01"), 2, False)
        'txtprice.Value = .VLookup(Val(txtcode.Text), Sheets("DATA").Range("teble2"), 3, False)
    End With
End Sub
ลองดูแล้วครับมันไม่แสดงผล
ขอบคุณครับ
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: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#2

Post by snasui »

:D ปุ่ม "เบิกลูกใหญ่" อยู่ที่ชีตไหน ตำแหน่งเซลล์ไหนครับ กดแล้วเปิด Form ใด ค่าทดสอบคือค่าใดบ้าง ผลลัพธ์หากถูกต้อง Object ใดจะต้องได้ค่าใดบ้างช่วยอธิบายมาอีกรอบครับ
titus
Member
Member
Posts: 89
Joined: Sun Aug 24, 2014 1:34 pm

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#3

Post by titus »

snasui wrote: Sat Oct 27, 2018 2:14 pm :D ปุ่ม "เบิกลูกใหญ่" อยู่ที่ชีตไหน ตำแหน่งเซลล์ไหนครับ กดแล้วเปิด Form ใด ค่าทดสอบคือค่าใดบ้าง ผลลัพธ์หากถูกต้อง Object ใดจะต้องได้ค่าใดบ้างช่วยอธิบายมาอีกรอบครับ
โทษที่ครับอาจาร์ย ลืมบอกเลยครับ
อยู่ Sheets J01 ครับ
พอกดแล้วเปิดฟอร์ม Ton2 ครับ
พอกดฟอร์มเเล้ว เราจะใช้ค่า ในช่อง ฺBat เหล็ก เป็นเงื่อนไขในการหาข้อมูลจาก i3:i62
ถ้าเหมือน กันใน cell ไหน ให้แสดงค่า cell ด้านขวามือ ในช่องจำนวน ครับ
titus
Member
Member
Posts: 89
Joined: Sun Aug 24, 2014 1:34 pm

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#4

Post by titus »

ประมาณนี้ครับ
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: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#5

Post by snasui »

:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        txtq.Value = .VLookup(cbbat.Text, Sheets("J01").Range("DATAJ01"), 2, False)
    End With
End Sub
titus
Member
Member
Posts: 89
Joined: Sun Aug 24, 2014 1:34 pm

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#6

Post by titus »

ขอบคุณครับ ผมไปตรวสอบอยู่ที่ ช่องที่จะแสดงนี้เองถึงไม่ขึ้น T T
titus
Member
Member
Posts: 89
Joined: Sun Aug 24, 2014 1:34 pm

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#7

Post by titus »

snasui wrote: Sat Oct 27, 2018 2:43 pm :D ตัวอย่าง Code ครับ

Code: Select all

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        txtq.Value = .VLookup(cbbat.Text, Sheets("J01").Range("DATAJ01"), 2, False)
    End With
End Sub
ขอบคุณครับ อาจาร์ย
สอบถามอีกหน่อยครับ ตอนนี้ Sheet ผมมีแค่ J01-J02 ถ้ามีการ เพิ่มชีท ถึง48 ชีท
ผมจะเอา ชื่อของ Sheet มาใช้ใน สูตร ได้แบบไหนบางครับ ส่วน Range จะเหมือนกันหมดทุกชีท
User avatar
puriwutpokin
Guru
Guru
Posts: 3792
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#8

Post by puriwutpokin »

titus wrote: Sat Oct 27, 2018 3:15 pm
snasui wrote: Sat Oct 27, 2018 2:43 pm :D ตัวอย่าง Code ครับ

Code: Select all

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        txtq.Value = .VLookup(cbbat.Text, Sheets("J01").Range("DATAJ01"), 2, False)
    End With
End Sub
ขอบคุณครับ อาจาร์ย
สอบถามอีกหน่อยครับ ตอนนี้ Sheet ผมมีแค่ J01-J02 ถ้ามีการ เพิ่มชีท ถึง48 ชีท
ผมจะเอา ชื่อของ Sheet มาใช้ใน สูตร ได้แบบไหนบางครับ ส่วน Range จะเหมือนกันหมดทุกชีท
ลองปรับเป็นตามนี้ครับ

Code: Select all

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("I3:J63"), 2, False)
    End With
End Sub
:shock: :roll: :D
titus
Member
Member
Posts: 89
Joined: Sun Aug 24, 2014 1:34 pm

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#10

Post by titus »

สอบถามเพิ่มเติมครับ หลังจากที่แสดงค่าในช่อง text box เเล้ว กดปุ่ม "เบิก"
ให้นำค่าแต่ละ text box ไป เก็บที่ sheet isue
1.ให้กลับไปที่ sheet เดิม และตำแหน่งของ เดิมของ ข้อมูล Combo box
2ลบข้อมูลที่ส่งไป เก็บที่ sheet isue
3ยกข้อมูลด้านล่างขึ้นมาทั้งหมด โดยไม่ลบ Row ต้องเขียนสูตรยังไง ดีครับ
:D :D
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: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#11

Post by snasui »

:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Public line As Long

Private Sub cmdok1_Click()
    Sheets("isue").Select
    Range("B10000").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Value = cbbat.Text
    ActiveCell.Offset(1, 1).Value = txtq.Text
    ActiveCell.Offset(1, 2).Value = txtc.Text
    ActiveCell.Offset(1, 3).Value = txtd.Text
    ActiveCell.Offset(1, 4).Value = txtlot.Text
    ActiveCell.Offset(1, 5).Value = txtsize.Text
    ActiveCell.Offset(1, 6).Value = txttype.Text
    ActiveCell.Offset(1, 7).Value = txtsize2.Text
    ActiveCell.Offset(1, 8).Value = txtcom.Text
    Sheets("j01").Select
    Range(ActiveSheet.Range("c" & line + 1), _
        ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy
    ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
    ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents
    Range("a1").Select
End Sub

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 2, False)
        txtlot.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 3, False)
        txtsize.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 4, False)
        txttype.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 5, False)
        txtsize2.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 6, False)
        txtcom.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 7, False)
        txtc.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 8, False)
    End With
End Sub
titus
Member
Member
Posts: 89
Joined: Sun Aug 24, 2014 1:34 pm

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#12

Post by titus »

snasui wrote: Tue Oct 30, 2018 11:43 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Public line As Long

Private Sub cmdok1_Click()
    Sheets("isue").Select
    Range("B10000").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Value = cbbat.Text
    ActiveCell.Offset(1, 1).Value = txtq.Text
    ActiveCell.Offset(1, 2).Value = txtc.Text
    ActiveCell.Offset(1, 3).Value = txtd.Text
    ActiveCell.Offset(1, 4).Value = txtlot.Text
    ActiveCell.Offset(1, 5).Value = txtsize.Text
    ActiveCell.Offset(1, 6).Value = txttype.Text
    ActiveCell.Offset(1, 7).Value = txtsize2.Text
    ActiveCell.Offset(1, 8).Value = txtcom.Text
    Sheets("j01").Select
    Range(ActiveSheet.Range("c" & line + 1), _
        ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy
    ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
    ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents
    Range("a1").Select
End Sub

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 2, False)
        txtlot.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 3, False)
        txtsize.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 4, False)
        txttype.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 5, False)
        txtsize2.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 6, False)
        txtcom.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 7, False)
        txtc.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 8, False)
    End With
End Sub
ได้คำสั่งใหม่อีกเเล้ว ขอบคุณครับ อาจารย์
แต่อยากให้อาจารย์อธิบาย คำสั่งหน่อย ครับ
Sheets("j01").Select กลับมาที่ ชีท j01
Range(ActiveSheet.Range("c" & line + 1), _ line +1 หมายความว่ายังไง ครับ อยู่ตำแหน่งไหน
ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy ---resize ทำหน้าที่อะไรครับ
ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents

เพราะตอนนี้ code มัน error ตำแหน่ง นี้ครับ ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
User avatar
puriwutpokin
Guru
Guru
Posts: 3792
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#13

Post by puriwutpokin »

titus wrote: Wed Oct 31, 2018 8:27 am
snasui wrote: Tue Oct 30, 2018 11:43 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Public line As Long

Private Sub cmdok1_Click()
    Sheets("isue").Select
    Range("B10000").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Value = cbbat.Text
    ActiveCell.Offset(1, 1).Value = txtq.Text
    ActiveCell.Offset(1, 2).Value = txtc.Text
    ActiveCell.Offset(1, 3).Value = txtd.Text
    ActiveCell.Offset(1, 4).Value = txtlot.Text
    ActiveCell.Offset(1, 5).Value = txtsize.Text
    ActiveCell.Offset(1, 6).Value = txttype.Text
    ActiveCell.Offset(1, 7).Value = txtsize2.Text
    ActiveCell.Offset(1, 8).Value = txtcom.Text
    Sheets("j01").Select
    Range(ActiveSheet.Range("c" & line + 1), _
        ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy
    ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
    ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents
    Range("a1").Select
End Sub

Private Sub cbbat_Change()
    With Application.WorksheetFunction
        line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 2, False)
        txtlot.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 3, False)
        txtsize.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 4, False)
        txttype.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 5, False)
        txtsize2.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 6, False)
        txtcom.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 7, False)
        txtc.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 8, False)
    End With
End Sub
ได้คำสั่งใหม่อีกเเล้ว ขอบคุณครับ อาจารย์
แต่อยากให้อาจารย์อธิบาย คำสั่งหน่อย ครับ
Sheets("j01").Select กลับมาที่ ชีท j01
Range(ActiveSheet.Range("c" & line + 1), _ line +1 หมายความว่ายังไง ครับ อยู่ตำแหน่งไหน
ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy ---resize ทำหน้าที่อะไรครับ
ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents

เพราะตอนนี้ code มัน error ตำแหน่ง นี้ครับ ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
ลองปรับทั้งหมดของ Module Ton3 ตามนี้ครับ

Code: Select all

Public line As Long
Private Sub txtdate_Change()
Sheets("report").Select
rang("U2").valule = txtdate.txt
End Sub
Private Sub cmdclose1_Click()
Unload Me
End Sub
Private Sub cmdok1_Click()
 With Application.WorksheetFunction
line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
    End With
    Sheets("isue").Select
    Range("B10000").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Value = cbbat.Text
    ActiveCell.Offset(1, 1).Value = txtq.Text
    ActiveCell.Offset(1, 2).Value = txtc.Text
    ActiveCell.Offset(1, 3).Value = txtd.Text
    ActiveCell.Offset(1, 4).Value = txtlot.Text
    ActiveCell.Offset(1, 5).Value = txtsize.Text
    ActiveCell.Offset(1, 6).Value = txttype.Text
    ActiveCell.Offset(1, 7).Value = txtsize2.Text
    ActiveCell.Offset(1, 8).Value = txtcom.Text
    Sheets("j01").Select
    Range(ActiveSheet.Range("c" & line + 1), _
        ActiveSheet.Range("c64").End(xlUp)).Resize(, 7).Copy
    ActiveSheet.Range("c" & line).PasteSpecial xlPasteValues
    ActiveSheet.Range("c64").End(xlUp).Resize(1, 7).ClearContents
    Range("a1").Select
End Sub
Private Sub cbbat_Change()
    With Application.WorksheetFunction
        line = .Match(cbbat.Text, ActiveSheet.Range("c:c"), 0)
        txtq.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 2, False)
        txtlot.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 3, False)
        txtsize.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 4, False)
        txttype.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 5, False)
        txtsize2.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 6, False)
        txtcom.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 7, False)
        txtc.Value = .VLookup(cbbat.Text, ActiveSheet.Range("C3:J63"), 8, False)
    End With
End Sub
:shock: :roll: :D
titus
Member
Member
Posts: 89
Joined: Sun Aug 24, 2014 1:34 pm

Re: ต้องการให้ Text box แสดงค่า ข้อมูล โดยมีเงือนไง ค่าจาก Listbox

#14

Post by titus »

ได้เเล้ว ครับ ขอบคุณครับ
Post Reply