: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

อยากให้ sheets รับค่าจากtext box

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Sangkate
Member
Member
Posts: 38
Joined: Tue Aug 07, 2012 6:10 pm

อยากให้ sheets รับค่าจากtext box

#1

Post by Sangkate »

รบกวนไกด์หน่อยครับอาจารย์ผมพึ่งลองหัดเขียน textในform พอดีไม่มีความรู้มาก่อน(แต่มีความพยายามมาก)ง่ายๆ คือเอาข้อมูลไปลงในซีทที่ 1 (C1,R1)ขอโค๊ดตัวอย่างสั้นๆหรือคำแนะนำหน่อยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: อยากให้ sheets รับค่าจากtext box

#2

Post by bank9597 »

:D โดยกฏแล้ว หากถามเรื่อง VBA จำเป็นต้องเขียนมาเองก่อนเสมอ เพราะจะสามารถปรับเองได้บ้างในเวลาเกิดปัญหา

แต่ที่ถามมาไม่ยากมาก เลยมีตัวอย่างให้ศึกษาดูครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
hinokia7210
Member
Member
Posts: 34
Joined: Wed Aug 15, 2012 8:40 am

Re: อยากให้ sheets รับค่าจากtext box

#3

Post by hinokia7210 »

สอบถามต่อจาก จขกท นะคะ
คุณ bank9597 ช่วยสอนตัวอย่างที่คุณแนบมาให้หน่อยได้มั้ยคะ
ไม่ค่อยเข้าใจค่ะ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: อยากให้ sheets รับค่าจากtext box

#4

Post by bank9597 »

:D ควรแจ้งด้วยครับว่า ไม่เข้าใจบรรทัดใดของโค๊ด

Code: Select all

Private Sub CommandButton1_Click()
If Me.TextBox1.Value <> "" Then
    Dim irow As Long
    Dim ws As Worksheet

    Set ws = Worksheets("Sheet1")
    Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
    'Find first empty row in database
    irow = ws.Cells(Rows.Count, 2) _
        .End(xlUp).Offset(1, 0).Row
   
    'Copy The Data To The Database
    ws.Cells(irow, 1).Value = Me.TextBox1.Value
    ws.Cells(irow, 2).Value = Me.TextBox2.Value
    Unload Me
    UserForm1.Show
    Else
    MsgBox "¡ÃسÒÃкت×è͹Ó˹éÒ¡è͹¤ÃѺ", vbCritical
    End If
    
End Sub

Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
hinokia7210
Member
Member
Posts: 34
Joined: Wed Aug 15, 2012 8:40 am

Re: อยากให้ sheets รับค่าจากtext box

#5

Post by hinokia7210 »

อย่าว่ากันนะคะ ถ้าจะบอกว่า..
เราต้องไปแทรกใส่ตรงไหน ทำไม่เป็นค่ะ
คิดว่าต้องไปแทรก หรือใช้คำสั่งอะไรก่อน แล้วใส่โค้ดด้านบนเพิ่มเติมไปใช่มั้ยคะ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: อยากให้ sheets รับค่าจากtext box

#6

Post by bank9597 »

:lol: ที่แห่งนี้ไม่เลือกตอบครับ จะยากจะง่าย หรือผู้ถามจะถามแบบไหนก็ให้สบายใจได้ครับ

เป็นเรื่องปกติที่ใครมากมายยังไม่ทราบครับ

เปิดโปรแกรม Excel ขึ้นมาครับ แล้วกด Alt+F11 จะมีหน้าต่าง VBE โชว์ขึ้นมา ในส่วนนี้จะเป็นในส่วนของการเขียนคำสั่งด้วยภาษา VB เพื่อไปสั่งงานโปรแกรมให้ทำงานตามที่เราต้องการ VBA คือ Visual Basic For Application

ในที่นี้ เอ็กเซลล์มีหลายเวอร์ชั่น ผมจึงแนะนำการเปิด VBE ด้วย Alt+F11 วิธีเดียวที่เป็นกลางพอครับ

เมื่อเปิดขึ้นมาแล้ว ไปที่แท็บ Insert เลือกสิ่งที่จะสร้าง เช่น Module หรือ Userform ในที่นี้ให้กดเลือก Userform ครับ

จะมีฟอร์มชื่อ Userform1 แสดงขึ้นมา เปลี่ยนชื่อได้ ใน Properties อยู่ด้านซ้ายมือล่าง ในช่องของ Caption

จะมีกล่องเครื่องมือเล็กๆ ชื่อ ToolBox เราเลือกออฟเจ็คต่างๆจากตรงนี้ครับ

ให้เลือก TextBox ไปวางที่ Userform 2 ตัวครับ โดยการกดที่ออฟเจ็ค แล้ววาดลง Userform

สร้างปุ่ม 1 ปุ่ม โดยไปเลือกที่ Command Button แล้วมาวาดใน Userform เสร็จแล้วดับเบิ้ลคลิ๊กที่ปุ่ม แล้วเอาโค๊ดด้านบนไปวาง


หลักการคร่าวๆประมาณนี้ครับ ลองศึกษาดูครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
hinokia7210
Member
Member
Posts: 34
Joined: Wed Aug 15, 2012 8:40 am

Re: อยากให้ sheets รับค่าจากtext box

#7

Post by hinokia7210 »

กรอกเสร็จแล้ว ทำไงให้มันขึ้นในหน้า excel อ่ะคะ งง ค่ะ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: อยากให้ sheets รับค่าจากtext box

#8

Post by bank9597 »

hinokia7210 wrote:กรอกเสร็จแล้ว ทำไงให้มันขึ้นในหน้า excel อ่ะคะ งง ค่ะ
:lol: สั่ง Run Code แล้วหรือยังครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Sangkate
Member
Member
Posts: 38
Joined: Tue Aug 07, 2012 6:10 pm

Re: อยากให้ sheets รับค่าจากtext box

#9

Post by Sangkate »

ขอบคุณครับอาจารย์ผมจะพัฒนาต่อครับ เจอทางตันแล้วจะรบกวนใหม่ครับ
User avatar
hinokia7210
Member
Member
Posts: 34
Joined: Wed Aug 15, 2012 8:40 am

Re: อยากให้ sheets รับค่าจากtext box

#10

Post by hinokia7210 »

ช่วยสอนวิธีสร้างกล่อง แสดงฟอร์ม แล้วก็วิธีการรันให้ด้วยค่ะ
และถ้าสมมุติว่าเราเขียนคำสั่งผิดพลาด เราจะกดแก้ไขได้ตรงไหนคะ
จะเอามาลองปรับใช้ดูค่ะ ขอบคุณค่ะ

เท่าที่ดูก็แค่เอากล่องข้อความมาใส่ธรรมดา แต่เวลาคลิกที่กล่องข้อความ มันก็ขึ้น text box ให้เลย
ตรงนี้ทำยังไงคะ ที่เราจะตั้งค่าให้เราสามารถรัน vb ได้แบบนี้อ่ะค่ะ หลังจากที่เรากรอกโค้ดคำสั่งแล้ว
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ sheets รับค่าจากtext box

#11

Post by snasui »

:shock: ผมพบว่าคุณ bank9597 ได้แนะนำเกี่ยวกับการเข้าไปสร้าง Form ไว้แล้วครั้งหนึ่ง :arrow: viewtopic.php?p=20321#p20321 หากเห็นว่าไม่สามารถต่อยอดจากนั้นได้ ควรจะหาหนังสือมาฝึกทำตามก่อน ติดปัญหาตรงไหนสามารถแนบ Code ที่เขียนมาเองแล้วถามตอบกันได้ที่นี่ครับ

ที่นี่พร้อมตอบทุกคำถาม ไม่ว่าจะยากหรือง่ายอย่างไร แต่ต้องเขียนกันมาเองก่อน (ตามกฎข้อ 5 ด้านบน) การเรียนรู้เกี่ยวกับ VBA จำเป็นศึกษากันมาเองตามลำดับ เมื่อติดปัญหาแล้วค่อยมาถามกันครับ
User avatar
hinokia7210
Member
Member
Posts: 34
Joined: Wed Aug 15, 2012 8:40 am

Re: อยากให้ sheets รับค่าจากtext box

#12

Post by hinokia7210 »

ขอโทษค่ะ ที่ใช้คำถามผิด การสร้างฟอร์ม แบบด้านบนนั้นทำได้แล้วค่ะ (ทำตามที่คุณ bank9597 แนะนำไว้ขึ้างบนแล้ว)
แต่ว่า จะทำให้โชว์ เหมือนอย่างหน้าจอด้านบน ลองกด รันดูแล้ว มันขึ้นเฉพาะในหน้า VB ค่ะ
แต่ให้ขึ้นอย่างภาพด้านบน หน้า sheet ใด sheet นึงน่ะค่ะ ยังงงๆ อยู่ กับ excel 2010 ค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ sheets รับค่าจากtext box

#13

Post by snasui »

:D เมื่อติดปัญหาก็ควรจะ Post ตัวอย่างไฟล์ที่เขียนมาเองแล้วครับ จะโพสต์ภาพประกอบด้วยก็ได้ แต่ไฟล์ตัวอย่างและ Code ที่เขียนมาเองแล้วจำเป็นจะต้องมีมาให้ด้วยเสมอ จะได้ทราบว่าเขียนอย่างไร เพื่อจะได้เข้าถึงปัญหาและสามารถแนะนำกันได้สะดวก

การตอบปัญหาไม่ว่าจะเรื่องสูตรหรือ Code หากจะให้ตรงกับสิ่งที่เป็นปัญหาให้แนบไฟล์ตัวอย่างมาเสมอ เพราะต้องใช้การอ้างอิงตำแหน่ง
User avatar
hinokia7210
Member
Member
Posts: 34
Joined: Wed Aug 15, 2012 8:40 am

Re: อยากให้ sheets รับค่าจากtext box

#14

Post by hinokia7210 »

ที่ต้องการถามคือว่า จะทำยังไงให้เมื่อกดส่วนใดส่วนหนึ่งของปุ่ม "กรอกข้อมูล" สีฟ้า
แล้วขึ้น text box อย่างที่เห็นค่ะ
(กรณีนี้ใช่วิธี กด alt + f11 แล้วขึ้นหน้าตา vb มาแล้วกด run ถึงจะขึ้นค่ะ)
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ sheets รับค่าจากtext box

#15

Post by snasui »

:D การจะกดปุ่มแล้วแสดง Form ขึ้นมาได้ต้องทำการ Assign Macro ให้กับปุ่มก่อนครับ :arrow: Assign Macro
User avatar
hinokia7210
Member
Member
Posts: 34
Joined: Wed Aug 15, 2012 8:40 am

Re: อยากให้ sheets รับค่าจากtext box

#16

Post by hinokia7210 »

snasui wrote::D การจะกดปุ่มแล้วแสดง Form ขึ้นมาได้ต้องทำการ Assign Macro ให้กับปุ่มก่อนครับ :arrow: Assign Macro
โฮ้.. เยอะมากจนตาลายไปหมดเลยค่ะ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: อยากให้ sheets รับค่าจากtext box

#17

Post by bank9597 »

hinokia7210 wrote:
snasui wrote::D การจะกดปุ่มแล้วแสดง Form ขึ้นมาได้ต้องทำการ Assign Macro ให้กับปุ่มก่อนครับ :arrow: Assign Macro
โฮ้.. เยอะมากจนตาลายไปหมดเลยค่ะ
แนบไฟล์มาดูอีกครั้งครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
hinokia7210
Member
Member
Posts: 34
Joined: Wed Aug 15, 2012 8:40 am

Re: อยากให้ sheets รับค่าจากtext box

#18

Post by hinokia7210 »

bank9597 wrote:
hinokia7210 wrote:
snasui wrote::D การจะกดปุ่มแล้วแสดง Form ขึ้นมาได้ต้องทำการ Assign Macro ให้กับปุ่มก่อนครับ :arrow: Assign Macro
โฮ้.. เยอะมากจนตาลายไปหมดเลยค่ะ
แนบไฟล์มาดูอีกครั้งครับ
แนบมาแล้วค่ะ กำลังปรับเปลี่ยนหน้าตาให้เหมาะกับการใช้งานอยู่ค่ะ ยังไม่ได้ปรับโค้ดอะไร เพียงแต่ก๊อบโค้ดจากกระทู้ก่อนที่คุณ Babk ให้ไว้
กะจะเอามาลองปรับๆ ดูค่ะ แต่ตอนนี้ ขอแค่กดปุ่มแล้ว มันขึ้น text box ให้ได้ก่อน
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: อยากให้ sheets รับค่าจากtext box

#19

Post by bank9597 »

:D เข้าไปใน VBE โดยกด Alt+F11

ไปที่ Insert เลือก Module เอาโค๊ดนี้ไปวาง

Code: Select all

Sub FormShow()
    กรอกข้อมูล.Show

End Sub
แนะนำให้เปลี่ยนชื่อฟอร์มเป็นภาษาอังกฤษ

กลับมาที่ชีท Data คลิ๊กขวาที่ปุ่ม "กรอกข้อมูล" เลือก Assign Macro จากนั้นเลือกที่ FormShow แล้ว OK

ทดสอบคลิ๊กปุ่ม
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
hinokia7210
Member
Member
Posts: 34
Joined: Wed Aug 15, 2012 8:40 am

Re: อยากให้ sheets รับค่าจากtext box

#20

Post by hinokia7210 »

bank9597 wrote::D เข้าไปใน VBE โดยกด Alt+F11

ไปที่ Insert เลือก Module เอาโค๊ดนี้ไปวาง

Code: Select all

Sub FormShow()
    กรอกข้อมูล.Show

End Sub
แนะนำให้เปลี่ยนชื่อฟอร์มเป็นภาษาอังกฤษ

กลับมาที่ชีท Data คลิ๊กขวาที่ปุ่ม "กรอกข้อมูล" เลือก Assign Macro จากนั้นเลือกที่ FormShow แล้ว OK

ทดสอบคลิ๊กปุ่ม
ขอบคุณค่ะ เดี๋ยวไปลองทำใส่โค้ด แล้วจะมาถามต่อนะคะ
Post Reply