: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

สอบถามครับ การกำหนดค่าหลายตัวแปร

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#61

Post by Leng »

2.จากข้อมูลในข้อ 1 ยกตัวอย่างว่าหาก Scan Barcode ใด ด้วย Box ใดแล้วผ่าน อธิบายมาว่าเพราะเหตุใดจึงผ่าน
3.จากข้อมูลในข้อ 1 ยกตัวอย่างว่าหาก Scan Barcode ใด ด้วย Box ใดแล้วไม่ผ่าน อธิบายมาว่าเพราะเหตุใดจึงไม่ผ่าน

เหตุผลที่ Scan Barcode ใด ด้วย Box ใดแล้วผ่านหรือไม่ผ่าน

เพราะว่าการทำงานของผมคือผมอยากลงข้อมูลใน ไฟล์ datax ก่อนแล้วถึงไปทำงานในไฟล์ Needle - Copy ซึ่งผมอยากกำหนด barcode ให้ตรงกับเบอร์กล่องครับเหตุผลว่างานแต่ละกล่องที่มา barcode แต่ละกล่องจะไม่เหมือนกันครับและจำนวนbarcodeแต่ละกล่องก็ไม่เท่ากันครับผมกลัวว่าจะผิดกล่องผิดจำนวนครับเลยอยากกำหนด barcode ให้ตรงกับกล่องและจำนวนครับ
เช่นว่า
กล่องเบอร์ 1 ต้องมี จำนวน 10 ตัว และใน 10 ตัว ต้องมี จำนวนbarcodeตามนี้
001 ต้อง มี 2 ตัว ในกล่องเบอร์ 1
002 ต้อง มี 2 ตัว ในกล่องเบอร์ 1
003 ต้อง มี 2 ตัว ในกล่องเบอร์ 1
004 ต้อง มี 2 ตัว ในกล่องเบอร์ 1
005 ต้อง มี 2 ตัว ในกล่องเบอร์ 1
แต่หากมีบาร์โค๊ดใดเกินมาให้แจ้งเตือนครับโดยผมอยากกำหนดตามนี้
ต้องการให้ Barcode ที่อยู่ ใน cloum A ในไฟล์ datax สามารถ scan ได้ไม่เกิน ข้อมูลใน cloum f ในไฟล์ datax เพราะว่า ผมต้องการกำหนดว่าถ้า cloum G ในไฟล์ datax กล่อง เบอร์ 0001 ต้องมีผมรวมใน cloumH ในไฟล์ datax แต่ว่าในกล่องเบอร์ 0001ต้องมี Barcode ใน cloum Aในไฟล์ datax ไม่เกินข้อมูลใน cloum f ในไฟล์ datax ครับ :oops:
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#62

Post by snasui »

:D สิ่งที่อธิบายมาไม่ได้ทำและไม่ได้ตอบในสิ่งที่ผมถามในโพสต์ #60 คงต้องรอให้ผู้ที่เข้าใจมาตอบครับ
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#63

Post by Leng »

อาจาร์ครับผมได้อธิบายอาจารย์ไปหมดแล้วครับ แต่คำถามอาจารย์ในข้อ #60 ผมก็ไม่เข้าใจครับตอนนี้ผมไม่รู้จะทำยังไง รบกวนอาจารย์ช่วยบอกด้วยนะครับ :oops:

Code: Select all

Dim rngBrcd As Range
    Dim rngBox As Range
With Workbooks("Needle - Copy.xlsm").Worksheets("IN")
        Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
        Set rngBrcd = rngvlp.Resize(, 1)
        
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
        Set rngBox = .Range("F2", .Range("F" & .Rows.Count).End(xlUp))
    End With
    With Application
        If .CountIfs(rngBrcd, Me.TextBox5.Text, "< rngBox, Me.TextBox2.Text") Then
            MsgBox "<Your message countifs>", vbInformation
            Exit Sub
        End If
          End With

'With Workbooks("DataX.xlsx").Worksheets("Sheet1")
'Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
'End With
'Other code
ต้องการให้ Barcode ที่อยู่ ใน cloum A ในไฟล์ datax สามารถ scan ได้ไม่เกิน ข้อมูลใน cloum f ในไฟล์ datax เพราะว่า ผมต้องการกำหนดว่าถ้า cloum G ในไฟล์ datax กล่อง เบอร์ 0001 ต้องมีผมรวมใน cloumH ในไฟล์ datax แต่ว่าในกล่องเบอร์ 0001ต้องมี Barcode ใน cloum Aในไฟล์ datax ไม่เกินข้อมูลใน cloum f ในไฟล์ datax ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
logic
Gold
Gold
Posts: 1511
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#64

Post by logic »

snasui wrote: Mon Sep 10, 2018 7:03 pm ตัดไฟล์ DataX.xlsx มาเฉพาะข้อมูลบางส่วนเพียงไม่เกิน 10 รายการวัตถุประสงค์เพื่อข้อ 2 และ 3 เท่านั้น
คุณตัดข้อมูลมาตามที่อาจารย์บอกแล้วยังครับ ผมเห็นไฟล์ DataX แนบมาเป็นหมื่นรายการทุกไฟล์
snasui wrote: Mon Sep 10, 2018 7:03 pm จากข้อมูลในข้อ 1 ยกตัวอย่างว่าหาก Scan Barcode ใด ด้วย Box ใดแล้วผ่าน อธิบายมาว่าเพราะเหตุใดจึงผ่าน
อฺันนี้อาจารย์ให้บอกมาว่า Barcode เบอร์ไหน Box ค่าเท่าใดที่คุณคีย์ใน Form แล้วมันต้องผ่านไปได้ คุณได้ยกตัวอย่างมาแล้วยัง นอกจากยกตัวอย่างแล้วต้องอธิบายว่าทำไมมันถึงผ่าน

อีกข้อคือบอกเบอร์ Barcode กับ Box ที่คีย์ใน Form แล้วต้องไม่ผ่านแล้วก็บอกด้วยว่ามันไม่ผ่านเพราะอะไร
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#65

Post by Leng »

:D ออผมเข้าใจแล้วครับก่อนอื่นต้องขอโทษอาจารย์และเพื่อนๆด้วยครับ
ตอนนี้ผมได้ตัดข้อมูลมาแล้วครับ
จากข้อมูลในข้อ 1 ยกตัวอย่างว่าหาก Scan Barcode ใด ด้วย Box ใดแล้วผ่าน อธิบายมาว่าเพราะเหตุใดจึงผ่าน
สาเหตุที่ผ่านคือ ข้อมูลในไฟล์ Needle - Copy.xlsm ได้มีการกำหนดไว้ว่าถ้า barcode ใน cloum A ในไฟล์ Datax ตรงกับเบอร์กล่อง ใน cloum E ในไฟล์ Datax จะสามารถ scan ได้ครับ
เช่น ถ้าลงข้อมูลในไฟล์ Datax ไว้แล้วว่า Barcode ใน Cloum A2 ว่า 123 และ ลงข้อมูลใน Box ใน Cloum E2 ว่า 1 แล้วไปทำในไฟล์ Needle - Copy.xlsm Box ต้องเป็น 1 และ Barcode ต้องเป็น 123 เท่านั้นถึงจะ scan ได้ครับ
จากข้อมูลในข้อ 1 ยกตัวอย่างว่าหาก Scan Barcode ใด ด้วย Box ใดแล้วผ่าน อธิบายมาว่าเพราะเหตุใดจึงผ่าน
สาเหตุที่ไม่ผ่านคือ ข้อมูลในไฟล์ Needle - Copy.xlsm ได้มีการกำหนดไว้ว่าถ้า barcode ใน cloum Aในไฟล์ Datax ไม่ตรงกับเบอร์กล่อง ใน cloum Eในไฟล์ Datax จะไม่สามารถ scan ได้ครับ เช่น ถ้าลงข้อมูลในไฟล์ Datax ไว้แล้วว่า Barcode ใน Cloum A2 ว่า 123 และ ลงข้อมูลใน Box ใน Cloum E2 ว่า 1 แล้วไปทำในไฟล์ Needle - Copy.xlsm Box เป็น 2 และ Barcode เป็น 123 ก็จะไม่สามารถ scan ได้ เนื่องจากข้อมูลที่ลงในไฟล์ Datax Cloum A ไม่ตรงกับ Cloum E ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#66

Post by snasui »

Leng wrote: Thu Sep 13, 2018 9:00 am สาเหตุที่ผ่านคือ ข้อมูลในไฟล์ Needle - Copy.xlsm ได้มีการกำหนดไว้ว่าถ้า barcode ใน cloum A ในไฟล์ Datax ตรงกับเบอร์กล่อง ใน cloum E ในไฟล์ Datax จะสามารถ scan ได้ครับ
:D Barcode ในคอลัมน์ A มันจะไปตรงกับเบอร์กล่องในคอลัมน์ E ได้อย่างไรครับ

Barcode มีรหัสเช่น 8060168019001 ส่วนคอลัมน์ E มีรหัสเช่น 1 เทียบกันในรูปแบบใดว่ามันตรงกัน การอธิบายลักษณะนี้ไม่สามารถทำให้ผู้อ่านเข้าใจได้เลยครับ

แต่ถ้าอธิบายว่าเมื่อ Barcdoe ใน Form ตรงกับ Barcode ในคอลัมน์ A ของไฟล์ DataX และ Box ใน Form ตรงกับคอลัมน์ E ของไฟล์ DataX แล้วถือว่าผ่าน หากเป็นเช่นนี้พอจะเข้าใจได้ เพราะเป็นการนำค่าเดียวกันไปเทียบกัน ส่วนจะมีเงื่อนไขในลักษณะใดอีกก็ต้องอธิบายมาให้หมด เขียนมาให้เป็นข้อ ๆ ได้ก็จะยิ่งดี
Leng wrote: Thu Sep 13, 2018 9:00 am เช่น ถ้าลงข้อมูลในไฟล์ Datax ไว้แล้วว่า Barcode ใน Cloum A2 ว่า 123 และ ลงข้อมูลใน Box ใน Cloum E2 ว่า 1 แล้วไปทำในไฟล์ Needle - Copy.xlsm Box เป็น 2 และ Barcode เป็น 123 ก็จะไม่สามารถ scan ได้ เนื่องจากข้อมูลที่ลงในไฟล์ Datax Cloum A ไม่ตรงกับ Cloum E ครับ
Barcode 123 มีอยู่ในไฟล์ DataX หรือไม่ อยู่เซลล์ไหนในคอลัมน์ A ถ้าไม่มีให้อธิบายมาใหม่ด้วยข้อมูลที่มีอยู่จริงในไฟล์ตัวอย่างทั้ง 2 กรณี

Scan ด้วย Box ใด Barcode ใด แล้วต้องให้ผ่าน
Scan ด้วย Box ใด Barcode ใด แล้วต้องไม่ผ่าน
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#67

Post by Leng »

:oops: ผมคงอธิบายผิดและผมก็คงไม่รู้จะอธิบายยังไงแต่ผมจะพยายามอธิบายครับ

Barcdoe ในไฟล์ Needle - Copy ตรงกับ Barcode ในคอลัมน์ A ของไฟล์ DataX และ Box ในไฟล์ Needle - Copy ตรงกับคอลัมน์ E ของไฟล์ DataX

1.สาเหตุที่ผ่าน เนื่องจากการทำงาน ระหว่าง Barcode กับ Box ในไฟล์ Needle - Copy ต้องตรงกันครับ ถึง scan ผ่านครับ เช่น
Barcode 8060168019001 ต้องตรงกับ Box เป็น 1 เท่านั้นถึงจะผ่านครับ
เนื่องจากข้อมูลในไฟล์ Datax ได้มีการกำหนดไว้ว่า Barcode ใน Cloum A เป็น 8060168019001 และ Box ใน Cloum E เป็น 1 ครับ

2.สาเหตุที่ไม่ผ่าน เนื่องจากการทำงาน ระหว่าง Barcode กับ Box ในไฟล์ Needle - Copy ไม่ตรงกันครับทำให้ scan ไม่ผ่านครับ เช่น
Barcode 8060168019001 แต่ใส่ Box เป็น 2 ก็จะไม่สามรถผ่านได้ครับ
เนื่องจากข้อมูลในไฟล์ Datax ได้มีการกำหนดไว้ว่า Barcode ใน Cloum A เป็น 8060168019001 และ Box ใน Cloum E เป็น 1 ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#68

Post by snasui »

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

Code: Select all

Private Sub TextBox5_AfterUpdate()
  Dim rngCmpr As Range
  Dim rngBrcd As Range
  With Workbooks("DataX.xlsx").Worksheets("Sheet1")
      Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
      Set rngBrcd = rngvlp.Resize(, 1)
      Set rngCmpr = .Range("e2", .Range("e" & .Rows.Count).End(xlUp))
  End With
  If Me.TextBox5.Text = "" Then Exit Sub
  With Application
      If .CountIfs(rngCmpr, Me.TextBox2.Text, rngBrcd, Me.TextBox5.Text) <> 1 Then
          MsgBox "<Your message>", vbInformation
          Exit Sub
      End If
  End With
'Other code
'With Workbooks("DataX.xlsx").Worksheets("Sheet1")
'Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
'End With

With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
End With
'Other code
ซึ่งก็คือ Code ในลักษณะเดีม ๆ ที่จำเป็นจะต้องทำความเข้าใจเพื่อจะได้ปรับเองได้ครับ
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#69

Post by Leng »

อาจารย์ครับ สิ่งที่อาจารย์ให้มา ไม่ตรงกับสิ่งที่ผมต้องการครับ สิ่งที่ผมต้องการคือ ผลรวม Barcode ใน from Needle - Copy.xlsm ต้องไม่เกินผลรวมของ Cloum F ในไฟล์ datax ครับ เช่น
Barcode 8060168019001 ต้องมีผมรวมแค่ 2 เพราะในไฟล์ datax cloum F มี 2 ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#70

Post by snasui »

:D ต้องปรับ Code มาเอง ติดแล้วค่อยถามกันต่อ อธิบายให้ชัดว่าปรับปรุงมาเองแล้วยังขาดในส่วนใด จะได้ตอบต่อไปจากนั้นครับ

ผมได้แจ้งไปแล้วว่าให้อธิบายมาให้ครอบคลุมทุกเงื่อนไข ควรอ่านและทำความเข้าใจทุกประโยคที่ผมแจ้งไปเสมอครับ
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#71

Post by Leng »

สิ่งที่ผมต้องการคือ ผลรวม Barcode ใน from Needle - Copy.xlsm ต้องไม่เกินผลรวมขใน Cloum F ในไฟล์ datax ครับ เช่น
Barcode 8060168019001 ต้องมีผมรวมแค่ 2 เพราะในไฟล์ datax cloum F มีผลรวมแค่ 2 ครับ หากผลรวมเกินไฟล์ datax cloum F ให้ แจ้งเตือนครับ

Code: Select all

  Dim rngBarcode As Range
    Dim rngTotal As Range
With Workbooks("Needle - Copy.xlsm").Worksheets("IN")
        Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
        Set rngBarcode = rngvlp.Resize(, 1)
       
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
        Set rngTotal = .Range("F2", .Range("F" & .Rows.Count).End(xlUp))
    End With
    With Application
        If .CountIfs(rngBrcd, Me.TextBox5.Text, "< rngBox, Me.TextBox2.Text") Then
            MsgBox "<Your message countifs>", vbInformation
            Exit Sub
        End If
          End With
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#72

Post by snasui »

:D Code ที่เขียนมามีความหมายว่าอย่างไรครับ :?:

เข้าใจ Code ที่ผมเขียนไปให้แล้วหรือไม่ แปลว่าอย่างไรครับ :?: หากแปลไม่ได้ควรแปลให้ได้เสียก่อนจึงจะทราบได้ว่าควรเพิ่มหรือลดหรือแก้ไขตรงไหน
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#73

Post by Leng »

Code: Select all

Dim rngBarcode01 As Range
Dim rngBarcode02 As Range
With Workbooks("Needle - Copy.xlsm").Worksheets("IN")
Set rngBarcode01 = Workbooks("Needle - Copy.xlsm").Worksheets("IN").Range("a2", .Range("d" & .Rows.Count).End(xlUp))
Set rngBrcd01 = rngvlp.Resize(, 1)
Set rngBarcode02 = Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("f2", .Range("f" & .Rows.Count).End(xlUp))
If Me.TextBox5.Text = "" Then Exit Sub
With Application
If .CountIfs(rngBrcd01, "<=", rngBarcode02) Then
MsgBox "Please Check Information", vbInformation
Exit Sub
End If
End With
  
รบกวนอาจารย์ช่วยดูหน่อยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#74

Post by snasui »

:D กรุณาตอบที่ผมถาม ไม่ใช่เขียนไปเรื่อย ๆ แบบไม่ทราบความหมายครับ
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#75

Post by Leng »

Code: Select all

Private Sub TextBox5_AfterUpdate()
Dim rngCmpr As Range
Dim rngBrcd As Range

With Workbooks("DataX.xlsx").Worksheets("Sheet1")
Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
Set rngBrcd = rngvlp.Resize(, 1)

Set rngCmpr = .Range("e2", .Range("e" & .Rows.Count).End(xlUp))
End With

If Me.TextBox5.Text = "" Then Exit Sub
With Application
If .CountIfs(rngCmpr, Me.TextBox2.Text, rngBrcd, Me.TextBox5.Text) <> 1 Then
MsgBox "<Your message>", vbInformation
Exit Sub
End If
End With
จากโค๊ดที่อาจารย์ให้มา คือ การกำหนด rngCmpr และ rngBrcd คือ
rngBrcd คือช่วงข้อมูลที่กำหนดไว้ในไฟล์ DataX.xlsx คือ Cloum A2:D
rngCmpr คือช่วงข้อมูลที่กำหนดไว้ในไฟล์ DataX.xlsx คือ Cloum E2:E
หากข้อมูล rngCmpr ,Textbox2 ไม่ตรงกับ rngBrcd ,Textbox 5 จะให้ขึ้น "<Your message>"
และหากข้อมูลตรงกันก็จะสามรถ scan ได้
ผมเข้าใจถูกต้องไหมครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#76

Post by snasui »

:D การกำหนดตัวแปรให้กับ rngBrcd คือ Set rngBrcd = rngvlp.Resize(, 1) ซึ่งจะเป็น ช่วงเซลล์ใดก็ต้องไปดูว่า ตัวแปร rngvlp คือพื้นที่ใด

เมื่อไปดูแล้วพบว่า rngvlp คือ .Range("a2", .Range("d" & .Rows.Count).End(xlUp)) หมายถึงตั้งแต่ A2 จนถึงคอลัมน์ D บรรทัดสุดท้ายที่มีข้อมูล

ดังนั้น rngvlp.Resize(, 1) จึงหมายถึงการปรับพื้นที่ของ rngvlp ให้เหลือคอลัมน์เดียวคือคอลัมน์ A เท่านั้นและไปกำหนดค่านี้ให้กับ rngBrcd เป็น Set rngBrcd = rngvlp.Resize(, 1)

ส่วนตัวแปร rngCmpr คือพื้นที่ ตั้งแต่ E2 จนถึง E สุดท้ายที่มีข้อมูล

เมื่อได้เช่นนี้แล้วค่อยไปนับว่า TextBox5 คือ Barcode ใน Form มีค่าตรงกับ rngBrcd และ Textbox2 คือ Box ใน Form มีค่าตรงกับ rngCmpr หรือไม่

โดย Code ที่ใช้คือ

Code: Select all

  With Application
      If .CountIfs(rngCmpr, Me.TextBox2.Text, rngBrcd, Me.TextBox5.Text) <> 1 Then
          MsgBox "<Your message>", vbInformation
          Exit Sub
      End If
  End With
แปลว่า หากมี Barcode ที่กำลัง Scan ในคอลัมน์ A ของไฟล์ DataX และมี Box ในคอลัมน์ E ของไฟล์ DataX ไม่เท่ากับ 1 รายการ ให้แสดงข้อความเดือน แต่ถ้ามีเพียง 1 รายการไม่ต้องแสดงข้อความเตือน

กรุณาสังเกตและทำความเข้าใจการใช้ Countifs ว่าใช้อย่างไร ไม่ควรเปลี่ยนไปเป็นอย่างอื่นโดยยังไม่มีความเข้าใจ

คำถามนี้เข้าใจว่ามีเงื่อนไขมากกว่า 2 เงื่อนไข คือมีการดูคอลัมน์ F ประกอบด้วย ดังนั้นจะต้องเขียนเพิ่มเองโดยอาศัยความเข้าใจในสิ่งที่ผมตอบไปแล้ว

ในส่วนที่ต้องเขียนเพิ่ม เข้าใจว่าจะต้องเป็น Sumifs และต้องมี 2 เงื่อนไขเช่นเดิม ศึกษาดู Sumifs ให้เข้าใจแล้วลองเขียนมาเองก่อน ติดตรงไหนค่อยถามกันต่อครับ
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#77

Post by Leng »

Code: Select all

  Dim rngCmpr As Range
  Dim rngBrcd As Range
  Dim rngTotal As Range
  With Workbooks("DataX.xlsx").Worksheets("Sheet1")
      Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
      Set rngBrcd = rngvlp.Resize(, 1)
      Set rngCmpr = .Range("e2", .Range("e" & .Rows.Count).End(xlUp))
      Set rngTotal = .Range("f2", .Range("f" & .Rows.Count).End(xlUp))
End With
If Me.TextBox5.Text = "" Then Exit Sub
With Application
If .CountIfs(rngCmpr, Me.TextBox2.Text, rngBrcd, Me.TextBox5.Text, "< rngTotal") <> 1 Then
          MsgBox "Please Check Information", vbInformation
          Exit Sub
      End If
  End With
'Other code
'With Workbooks("DataX.xlsx").Worksheets("Sheet1")
'Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
'End With
อาจารย์ครับจากที่ผมดูและทำความเข้าใจเอง ผมคิดว่าต้องมีการกำหนดตัวแปรเพิ่มผมจึงกำหนดตัวแปรเพิ่มขึ้นคือ

Code: Select all

Dim rngTotal As Range
เพื่อให้ตัวแปรนี้ไปดึงข้อมูลจากไฟล์ DataX ใน cloum f แต่ติดปัญหาคือ ผมไม่รู้จะทำยังไงให้รวมผลรวมของแต่ละ barcode หากเกินข้อมูลใน ไฟล์ datax ใน cloum f ให้แจ้งเตือนครับรบกวนอาจารย์ช่วยผมหน่อยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#78

Post by snasui »

:D ให้ใช้ Sumifs แทน Countifs ครับ

กรุณาอ่านและทำความเข้าใจพร้อมทั้งปรับ Code มาเอง ถ้ายังไม่เป็น Sumifs ถือว่ายังไม่ได้อ่านที่ผมเขียนไปครับ
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#79

Post by Leng »

รบกวนอาจารย์ช่วยแนะนำหน่อยครับ

Code: Select all

Dim rngCmpr As Range
  Dim rngBrcd As Range
  Dim rngTotal As Range
  With Workbooks("DataX.xlsx").Worksheets("Sheet1")
      Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
      Set rngBrcd = rngvlp.Resize(, 1)
      Set rngCmpr = .Range("e2", .Range("e" & .Rows.Count).End(xlUp))
      Set rngTotal = .Range("f2", .Range("f" & .Rows.Count).End(xlUp))
End With
If Me.TextBox5.Text = "" Then Exit Sub
With Application
If .SumIfs(rngBrcd, Me.TextBox5, rngTotal, rngCmpr, Me.TextBox2) < 1 Then
          MsgBox "Please Check Information", vbInformation
          Exit Sub
      End If
  End With
'Other code
'With Workbooks("DataX.xlsx").Worksheets("Sheet1")
'Set rngvlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
'End With
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สอบถามครับ การกำหนดค่าหลายตัวแปร

#80

Post by snasui »

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

Code: Select all

'Other code
If .SumIfs(rngTotal, rngBrcd, Me.TextBox5, rngCmpr, Me.TextBox2) > 2 Then
    MsgBox "Please Check Information", vbInformation
    Exit Sub
    End If
End With
'Other code
Post Reply