:!: โปรดทราบ Image
    1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ดครับ Image
    2. การสมัครสมาชิกเพื่อโพสต์คำถาม ดาวน์โหลดไฟล์แนบไปศึกษา ทำตามขั้นตอนด้านล่างครับ
      1. สมัครสมาชิก ดูขั้นตอนตาม Link นี้ครับ => สมัครสมาชิก กรณีลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่นี่ครับ => Reset รหัสผ่านImage
      2. Login เข้าระบบโดยคลิก Login ตรงมุมขวาบนของหน้านี้ Image กรณีมีปัญหาในการเข้าใช้งาน คลิก Link นี้เพื่อแจ้งผู้ดูแลระบบครับ => ติดต่อผู้ดูแลระบบ
    3. เมื่อ Login แล้วสามารถกำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษได้ที่ Link นี้ครับ => ตั้งค่าส่วนตัว Image
    4. วิธีการตั้งและตอบกระทู้ดูได้ที่ Link นี้ครับ => วิธีการตั้งและตอบกระทู้ Image
    5. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ Link นี้ครับ => จัดรูปแบบตัวอักษร และสามารถกำหนดขนาดตัวอักษรใน Browser ได้ที่นี่ครับ ==> กำหนดขนาดตัวอักษรใน Browser Image

ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

ฟอรั่มถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถาม-ตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบ ต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. อธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. ควรแนบตัวอย่างไฟล์มาที่ฟอรั่มนี้เพื่อเพิ่มความสะดวกในการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่น นอกจากนี้ไม่ควรแนบไฟลที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน ควรโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. แจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
snasui
Site Admin
Site Admin
Posts: 21977
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#21

Postby snasui » Tue Oct 10, 2017 6:08 am

:D ต้องกำหนดหัวข้อเข้าไปเองหรืออ้างอิงจากที่มีอยู่แล้ว ลองเขียนมาเองก่อน ติดตรงไหนแล้วค่อยถามกันต่อครับ

Benmore
Member
Member
Posts: 50
Joined: Tue Sep 05, 2017 9:51 am

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#22

Postby Benmore » Tue Oct 10, 2017 10:06 am

snasui wrote::D ต้องกำหนดหัวข้อเข้าไปเองหรืออ้างอิงจากที่มีอยู่แล้ว ลองเขียนมาเองก่อน ติดตรงไหนแล้วค่อยถามกันต่อครับ

ลองแก้โค้ดเองได้แล้วค่ะ แต่คือติดปัญหาตรงที่ไม่ต้องการเอาหัวข้อไปแสดงที่ชีทต้องแก้ตรงไหนค่ะแล้วก็เอาข้อมูลใน textbox3 ไปแสดงในชีท excel ไม่ได้ค่ะ (Userform1)

Code: Select all

 'ค้นหา
Private Sub btsearch_Click()
    Dim txt As String
    On Error Resume Next
    'Err.Clear
    Dim nRow As String
    nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
    If Err.Number = 91 Then
        TextBox1.RowSource = "txtsearch.Text"
          MsgBox "ไม่มีข้อมูล"
    End If
    txt = "Emp_ID :" & Cells(nRow, 1) & "Name :" & vbCrLf & Cells(nRow, 2) & "Section :" & vbCrLf & Cells(nRow, 8) _
        & "Uniform_No :" & vbCrLf & Cells(nRow, 13)
    TextBox1.Value = txt
End Sub

code save

Code: Select all

'Save
Private Sub btsave_Click()
  Dim emptyRow As Integer
Dim strTb1 As Variant
Dim strTb2 As Variant
emptyRow = WorksheetFunction.Count("B3:A1000") + 1
If emptyRow = 0 Then
    emptyRow = 2
Else
   emptyRow = emptyRow + 2
   Sheet9.Activate
   strTb1 = Split(TextBox1.Text, vbCrLf)
  strTb2 = Split(TextBox3.Text, vbCrLf)
   Cells(emptyRow, 1).Value = strTb1(0)  'TextBox1.Value
   Cells(emptyRow, 2).Value = strTb1(1) 'TextBox1.Value
   Cells(emptyRow, 3).Value = strTb1(2) 'TextBox1.Value
   Cells(emptyRow, 4).Value = strTb1(3) 'TextBox1.Value
   Cells(emptyRow, 5).Value = comday.Value & "/" & commonth.Value & "/" & comyear.Value
   Cells(emptyRow, 6).Value = strTb2(6) 'TextBox3.Value
   MsgBox "บันทึกข้อมูลเรียบร้อย"
End If
End Sub

ไฟล์แนบค่ะ
Uniform_EGAS(Ex).xlsm
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 21977
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#23

Postby snasui » Tue Oct 10, 2017 6:32 pm

:D ตัวอย่างการกำหนดตัวแปร txt ตามด้านล่างครับ

Code: Select all

'...Other code
txt = "Emp_ID :" & Cells(nRow, 1) & vbCrLf & _
    "Name :" & Cells(nRow, 2) & vbCrLf & _
    "Section :" & Cells(nRow, 8) & vbCrLf & _
    "Uniform_No :" & Cells(nRow, 13)
'...Other code


ตัวอย่างการ Code บางส่วนเมื่อกดปุ่ม Save ซึ่งเป็น Code ที่เกี่ยวกับการกำหนดค่าให้กับตัวแปร txt

Code: Select all

'...Other code
Cells(emptyRow, 1).Value = VBA.Mid(strTb1(0), InStr(strTb1(0), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 2).Value = VBA.Mid(strTb1(1), InStr(strTb1(1), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 3).Value = VBA.Mid(strTb1(2), InStr(strTb1(2), ":") + 1) 'TextBox1.Value
Cells(emptyRow, 4).Value = VBA.Mid(strTb1(3), InStr(strTb1(3), ":") + 1) 'TextBox1.Value
'...Other code

Benmore
Member
Member
Posts: 50
Joined: Tue Sep 05, 2017 9:51 am

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#24

Postby Benmore » Thu Oct 12, 2017 3:45 pm

สอบถามเรื่องการค้นหาข้อมูลเพิ่มค่ะ อยากให้ค้นหาข้อมูลได้เฉพาะตัวเลข 3 ตัวหลังของรหัสพนักงานค่ะ ถ้าใส่ข้อมูลเป็นตัวหนังสือก็ให้แสดง msg ว่า "กรุณาใสข้อมูลเป็นตัวเลข" ใน user form 11

Code: Select all

'Search
Private Sub btsearch_Click()
On Error Resume Next
Dim nRow As String
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If Err.Number = 91 Then

    ComboBox1.Value = " "
    TextBox1.Value = " "
     TextBox2.Value = " "
     TextBox3.Value = " "
     TextBox4.Value = " "
      ComboBox2.Value = " "
     TextBox5.Value = " "
     ComboBox3.Value = " "
     TextBox6.Value = " "
    ComboBox4.Value = " "
    TextBox7.Value = " "
     ComboBox5.Value = " "
     ComboBox6.Value = " "
        MsgBox "ไม่มีข้อมูล"
    End If
    ComboBox1.Value = Cells(nRow, 1)
    TextBox1.Value = Cells(nRow, 2)
    TextBox2.Value = Cells(nRow, 3)
    TextBox3.Value = Cells(nRow, 4)
    TextBox4.Value = Cells(nRow, 5)
     ComboBox2.Value = Cells(nRow, 6)
    TextBox5.Value = Cells(nRow, 7)
    ComboBox3.Value = Cells(nRow, 8)
     TextBox6.Value = Cells(nRow, 9)
     ComboBox4.Value = Cells(nRow, 10)
      TextBox7.Value = Cells(nRow, 11)
    ComboBox5.Value = Cells(nRow, 12)
    ComboBox6.Value = Cells(nRow, 13)
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: 21977
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#25

Postby snasui » Thu Oct 12, 2017 6:34 pm

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

Code: Select all

'...Other code
On Error Resume Next
Dim nRow As String
If Not IsNumeric(vba.right(txtsearch.Text,3)) Then
    MsgBox "กรุณาใสข้อมูลเป็นตัวเลข"
    Exit Sub
End If
'...Other code

Benmore
Member
Member
Posts: 50
Joined: Tue Sep 05, 2017 9:51 am

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#26

Postby Benmore » Mon Oct 16, 2017 9:16 am

ลองเอาโค้ดไปปรับแล้วก็ยังค้นหาเจอทั้งที่ไม่มีรหัสนี้อยู่ค่ะ

Code: Select all

Private Sub btsearch_Click()
On Error Resume Next
Dim nRow As String
If Not IsNumeric(VBA.Right(txtsearch.Text, 3)) Then
    MsgBox "¡ÃسÒãÊ¢éÍÁÙÅà»ç¹µÑÇàÅ¢"
    Exit Sub
End If
nRow = Sheet6.Columns(1).Find(txtsearch.Text).Row
If Err.Number = 91 Then
    ComboBox1.Value = " "
    TextBox1.Value = " "
     TextBox2.Value = " "
     TextBox3.Value = " "
     TextBox4.Value = " "
      ComboBox2.Value = " "
     TextBox5.Value = " "
     ComboBox3.Value = " "
     TextBox6.Value = " "
    ComboBox4.Value = " "
    TextBox7.Value = " "
     ComboBox5.Value = " "
     ComboBox6.Value = " "
        MsgBox "äÁèÁÕ¢éÍÁÙÅ"
    End If
    ComboBox1.Value = Cells(nRow, 1)
    TextBox1.Value = Cells(nRow, 2)
    TextBox2.Value = Cells(nRow, 3)
    TextBox3.Value = Cells(nRow, 4)
    TextBox4.Value = Cells(nRow, 5)
     ComboBox2.Value = Cells(nRow, 6)
    TextBox5.Value = Cells(nRow, 7)
    ComboBox3.Value = Cells(nRow, 8)
     TextBox6.Value = Cells(nRow, 9)
     ComboBox4.Value = Cells(nRow, 10)
      TextBox7.Value = Cells(nRow, 11)
    ComboBox5.Value = Cells(nRow, 12)
    ComboBox6.Value = Cells(nRow, 13)
End Sub
You do not have the required permissions to view the files attached to this post.

logic
Silver
Silver
Posts: 516
Joined: Thu Mar 18, 2010 1:57 pm

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#27

Postby logic » Mon Oct 16, 2017 1:48 pm

เท่าที่อ่านดูตรง nRow ผมว่ามันต้อง loop หาแทนการ search นะครับ

ลองเอาไปปรับดูครับ

Code: Select all

for each r in sheet6.columns(1).specialcells(xlcelltypeconstants)
   if right(r.value,3) = right(txtsearch.text,3) then
      nRow = r.row
      exit for
   end if
end if

Benmore
Member
Member
Posts: 50
Joined: Tue Sep 05, 2017 9:51 am

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#28

Postby Benmore » Mon Oct 16, 2017 3:17 pm

logic wrote:เท่าที่อ่านดูตรง nRow ผมว่ามันต้อง loop หาแทนการ search นะครับ

ลองเอาไปปรับดูครับ

Code: Select all

for each r in sheet6.columns(1).specialcells(xlcelltypeconstants)
   if right(r.value,3) = right(txtsearch.text,3) then
      nRow = r.row
      exit for
   end if
end if

ลองปรับแล้วก็ยังไม่ได้ค่ะ ต้องปรับแบบไหนค่ะ

User avatar
snasui
Site Admin
Site Admin
Posts: 21977
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#29

Postby snasui » Mon Oct 16, 2017 6:34 pm

:D แนบไฟล์ล่าสุดที่ได้ปรับ Code ตามที่คุณ logic แจ้งไปมาด้วย จะได้ช่วยดูต่อไปจากนั้นครับ

Benmore
Member
Member
Posts: 50
Joined: Tue Sep 05, 2017 9:51 am

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#30

Postby Benmore » Tue Oct 17, 2017 8:33 am

Uniform_EGAS(Ex).xlsm
snasui wrote::D แนบไฟล์ล่าสุดที่ได้ปรับ Code ตามที่คุณ logic แจ้งไปมาด้วย จะได้ช่วยดูต่อไปจากนั้นครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 21977
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#31

Postby snasui » Tue Oct 17, 2017 8:33 pm

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

Code: Select all

Private Sub btsearch_Click()
    Dim found As Boolean
    On Error Resume Next
    Dim nRow As String
    For Each r In Sheet6.Columns(1).SpecialCells(xlCellTypeConstants)
        If Right(r.Value, 3) = Right(txtsearch.Text, 3) Then
            nRow = r.Row
            found = True
            Exit For
        End If
    Next r
    If found Then
        If Not IsNumeric(VBA.Right(txtsearch.Text, 3)) Then
            MsgBox "¡ÃسÒãÊ¢éÍÁÙÅà»ç¹µÑÇàÅ¢"
            Exit Sub
        End If
        If Err.Number = 91 Then
            ComboBox1.Value = " "
            TextBox1.Value = " "
            TextBox2.Value = " "
            TextBox3.Value = " "
            TextBox4.Value = " "
            ComboBox2.Value = " "
            TextBox5.Value = " "
            ComboBox3.Value = " "
            TextBox6.Value = " "
            ComboBox4.Value = " "
            TextBox7.Value = " "
            ComboBox5.Value = " "
            ComboBox6.Value = " "
            MsgBox "äÁèÁÕ¢éÍÁÙÅ"
        End If
            ComboBox1.Value = Cells(nRow, 1)
            TextBox1.Value = Cells(nRow, 2)
            TextBox2.Value = Cells(nRow, 3)
            TextBox3.Value = Cells(nRow, 4)
            TextBox4.Value = Cells(nRow, 5)
            ComboBox2.Value = Cells(nRow, 6)
            TextBox5.Value = Cells(nRow, 7)
            ComboBox3.Value = Cells(nRow, 8)
            TextBox6.Value = Cells(nRow, 9)
            ComboBox4.Value = Cells(nRow, 10)
            TextBox7.Value = Cells(nRow, 11)
            ComboBox5.Value = Cells(nRow, 12)
            ComboBox6.Value = Cells(nRow, 13)
            Exit Sub
    Else
        MsgBox "Not found."
    End If
End Sub

Benmore
Member
Member
Posts: 50
Joined: Tue Sep 05, 2017 9:51 am

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#32

Postby Benmore » Wed Oct 18, 2017 10:09 am

- นำไปแก้ไขได้แล้วค่ะ แต่พอเอาโค้ดไปใส่ในฟอร์มอื่นก็ error ค่ะ เพราะอะไรทั้งๆที่เป็นโค้ดเดียวกัน ที่ userform1
error1.png

- ขอบสอบถามเพิ่มเติมนะค่ะ ทำอย่างไรให้ข้อมูลจำนวนที่เรากรอกขึ้นแค่อันเดียว
แล้วพอเราเลือกข้อมูลอันใหม่ทำให้ข้อมูลอันเก่าที่เคยเลือกหายไปต้องแก้ตรงไหนค่ะ
error.png
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 21977
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#33

Postby snasui » Wed Oct 18, 2017 10:13 pm

:D กรณี Error ช่วยจับภาพหรือแจ้ง Error มาดูกัน หากบรรทัดบนสุดมีคำว่า Option Explicit จะต้องประกาศตัวแปรก่อนที่จะใช้ตัวแปรนั้นเสมอ เช่น Dim r As Range เป็นต้นครับ

ในส่วนของการเลือกข้อมูลใหม่ให้ช่องจำนวนหายไป ขึ้นอยู่กับ Code ในช่องที่เราเลือกว่าเขียนไว้อย่างไร ช่วยโพสต์หรือแจ้งไว้ด้วยจะได้เข้าถึงข้อมูลได้โดยไวครับ

Benmore
Member
Member
Posts: 50
Joined: Tue Sep 05, 2017 9:51 am

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#34

Postby Benmore » Thu Oct 19, 2017 9:04 am

snasui wrote::D กรณี Error ช่วยจับภาพหรือแจ้ง Error มาดูกัน หากบรรทัดบนสุดมีคำว่า Option Explicit จะต้องประกาศตัวแปรก่อนที่จะใช้ตัวแปรนั้นเสมอ เช่น Dim r As Range เป็นต้นครับ

ในส่วนของการเลือกข้อมูลใหม่ให้ช่องจำนวนหายไป ขึ้นอยู่กับ Code ในช่องที่เราเลือกว่าเขียนไว้อย่างไร ช่วยโพสต์หรือแจ้งไว้ด้วยจะได้เข้าถึงข้อมูลได้โดยไวครับ


ค้นหาแก้ไขได้แล้วค่ะ แต่ติดตรงส่วนของการเลือกข้อมูลใหม่ให้ข้อมูลที่เลือกก่อนหน้าหายไป และก็ช่องจำนวนค่ะ พอพิมจำนวนสองตัวก็จะขึ้นข้อมูลสองครั้งค่ะ เช่น ถ้าพิม 1 จะขึ้น "จำนวน 1" ถ้าเพิ่ม 1 อีกตัวก็จะขึ้น "จำนวน 1" "จำนวน 11" แบบนี้ค่ะ

Code: Select all

 
Private Sub ComboBox1_Change()
If Combobox1.Value = "เสื้อแขนสั้น(Short Shirt)" Then
Combobox2.RowSource = "DATA!G2:G8"
End If
If Combobox1.Value = "เสื้อแขนยาว(Long Shirt)" Then
Combobox2.RowSource = "DATA!G2:G8"
End If
If Combobox1.Value = "กางเกง(Trousere)" Then
Combobox2.RowSource = "DATA!H2:H24"
Else
Combobox2.Value = ""
End If
If Combobox1.Value <> "" Then
TextBox3.Value = TextBox3.Value & vbCrLf & "" & Combobox1.Value
End If
End Sub
Private Sub ComboBox2_Change()
If Combobox2.Value <> "" Then
       TextBox3.Value = TextBox3.Value & vbCrLf & " ไซส์ " & Combobox2.Value
End If
End Sub



'จำนวน
Private Sub TextBox4_Change()
On Error Resume Next
If TextBox4.Value <> "" Then
        TextBox3.Value = TextBox3.Value & vbCrLf & " จำนวน " & TextBox4.Value
End If
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: 21977
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: ค้นหาข้อมูลแล้วให้ข้อมูลโชว์ใน Textbox

#35

Postby snasui » Thu Oct 19, 2017 5:40 pm

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

Code: Select all

'Other code
If Combobox1.Value <> "" Then
    TextBox3.Value = ""
    TextBox3.Value = TextBox3.Value & vbCrLf & "" & Combobox1.Value
End If
'Other code


Return to “Excel”

Who is online

Users browsing this forum: No registered users and 31 guests