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

Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#1

Post by ANUSARA »

ต้องการ Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel ที่ต้องการให้ผู้ใช้เลือกวิธีแบบที่ 1 แล้วจะใส่ค่าได้เฉพาะช่องของแบบที่ 1
และถ้าเลือกวิธีแบบที่ 2 จะใส่ค่าได้เฉพาะในช่องของแบบที่ 2 จะไปเลือกหรือใสข้อมูลในแบบที่ 1 ไม่ได้

แนบไฟล์ มาดูด้วยนะคะ
1. ต้องการให้ใส่ข้อมูลตามลำดับตั้งแต่ Name, Date
2. แล้วพอถึงข้อ 1 Method ให้เลือกว่าจะเอา Method 1 หรือ Method 2
3. ถ้าเลือก Method 1 จะสามารถคลิกเลือกเฉพาะที่ข้อ 1.1 เพื่อเลือกข้อมูลจาก method โดยคลิกที่ 1.2 Method 2 ไม่ได้ รวมถึง คลิกที่ 1.2.1 และ 1.2.2 ไม่ได้ด้วย หรือ ถ้าเลือก Method 2 จะคลิกที่ Method 1 ไม่ได้จะใส่ข้อมูลได้เฉพาะใน 1.2.1 , 1.2.2
4. ส่วนในข้อ 2-4 สามารถใส่ข้อมูลได้แม้จะเลือก Method 1 หรือ Method 2
You do not have the required permissions to view the files attached to this post.
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#2

Post by ANUSARA »

ต้องการ Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel ที่ต้องการให้ผู้ใช้เลือกวิธีแบบที่ 1 แล้วจะใส่ค่าได้เฉพาะช่องของแบบที่ 1
และถ้าเลือกวิธีแบบที่ 2 จะใส่ค่าได้เฉพาะในช่องของแบบที่ 2 จะไปเลือกหรือใสข้อมูลในแบบที่ 1 ไม่ได้

แนบไฟล์ มาดูด้วยนะคะ
1. ต้องการให้ใส่ข้อมูลตามลำดับตั้งแต่ Name, Date
2. แล้วพอถึงข้อ 1 Method ให้เลือกว่าจะเอา Method 1 หรือ Method 2
3. ถ้าเลือก Method 1 จะสามารถคลิกเลือกเฉพาะที่ข้อ 1.1 เพื่อเลือกข้อมูลจาก method โดยคลิกที่ 1.2 Method 2 ไม่ได้ รวมถึง คลิกที่ 1.2.1 และ 1.2.2 ไม่ได้ด้วย หรือ ถ้าเลือก Method 2 จะคลิกที่ Method 1 ไม่ได้จะใส่ข้อมูลได้เฉพาะใน 1.2.1 , 1.2.2
4. ส่วนในข้อ 2-4 สามารถใส่ข้อมูลได้แม้จะเลือก Method 1 หรือ Method 2
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#3

Post by snasui »

:D ลองดูการทำ Validation ด้วยการ Custom เพื่อใช้ Function ตรวจสอบเงื่อนไขตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#4

Post by ANUSARA »

ถ้าต้องการให้ช่องนี้มีรายการให้เลือกตามสีของช่อง C5 ค่ะ
และกำหนดเหมือนเดิมคือจะคลิกเลือกรายการได้ต้องเลือก Method 1 จะต้องเพิ่มสูตรอย่างไรคะ
=OFFSET($O$6,1,MATCH($C$5,$P$6:$R$6,0),5,1)
สูตรนี้ได้ลองทำเพื่อให้มันมีรายการเลือกเพื่อเชื่อมจากการเลือกสีด้านบน ค่ะ
ต้องรวมนี้กับสูตร =IF(E8="Method 1",$M$10:$M$15) อย่างไรคะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#5

Post by snasui »

ANUSARA wrote:ถ้าต้องการให้ช่องนี้มีรายการให้เลือกตามสีของช่อง C5 ค่ะ
และกำหนดเหมือนเดิมคือจะคลิกเลือกรายการได้ต้องเลือก Method 1 จะต้องเพิ่มสูตรอย่างไรคะ
=OFFSET($O$6,1,MATCH($C$5,$P$6:$R$6,0),5,1)
สูตรนี้ได้ลองทำเพื่อให้มันมีรายการเลือกเพื่อเชื่อมจากการเลือกสีด้านบน ค่ะ
ต้องรวมนี้กับสูตร =IF(E8="Method 1",$M$10:$M$15) อย่างไรคะ
:D ที่ Data > Validation เปลี่ยนสูตรเป็นด้านล่างแทนสูตรเดิมครับ

=IF(E8="Method 1",OFFSET($O$6,0,MATCH($C$5,$P$5:$R$5,0),4))
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#6

Post by ANUSARA »

ปัญหาคื่อ ถ้าเกิดผู้ใช้เลือก Method 1 แล้ว คลิกเลือกข้อมูลค้างไว้ แต่เปลี่ยนมาเลือก Method 2 ซึ่งเป็นแบบใส่ข้อมูล ดังนั้นข้อมูลในแบบ Method 1 ที่ถูกเลือกจากlist จะค้างอยู่
จึงอยากให้ถ้าเลือก Method 2 แล้วข้อมูลในMetod 1 จะแสดงตัวเลือกแรกคือ **Please select data**
และถ้าเลือก Method 1 ช่องที่ใส่ data ของ Method 2 อยากให้แสดงค่า 0
ต้องใส่สูตรเพิ่มอย่างไรคะ

รบกวนอีกครั้งค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#7

Post by snasui »

ANUSARA wrote:ปัญหาคื่อ ถ้าเกิดผู้ใช้เลือก Method 1 แล้ว คลิกเลือกข้อมูลค้างไว้ แต่เปลี่ยนมาเลือก Method 2 ซึ่งเป็นแบบใส่ข้อมูล ดังนั้นข้อมูลในแบบ Method 1 ที่ถูกเลือกจากlist จะค้างอยู่
จึงอยากให้ถ้าเลือก Method 2 แล้วข้อมูลในMetod 1 จะแสดงตัวเลือกแรกคือ **Please select data**
และถ้าเลือก Method 1 ช่องที่ใส่ data ของ Method 2 อยากให้แสดงค่า 0
ต้องใส่สูตรเพิ่มอย่างไรคะ

รบกวนอีกครั้งค่ะ
ขอบคุณค่ะ
:D กรณีต้องการเช่นนี้ต้องใช้ VBA เข้ามาช่วยครับ เมื่อถามถึง VBA ผมถือว่าคุณ ANUSARA มีความคุ้นเคยกับ VBA อยู่แล้ว การวาง Code คงไม่มีปัญหา

ลองนำ Code ด้านล่างนี้ไปวางที่ Sheet1 ครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Address = "$E$8" Then
        If Target = "Method 1" Then
            Range("C11") = "**Please select data**"
            Range("F15:H19") = 0
        Else
            Range("C11") = "**Please select data**"
            Range("F15:H19").ClearContents
        End If
    End If
    Application.EnableEvents = True
End Sub
จากนั้นลองเปลี่ยน E8 แล้วสังเกตดูผล :mrgreen:
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#8

Post by ANUSARA »

ขอบคุณมากค่ะ ลองเอา code ไปวางแล้ว สามารถทำได้แล้วค่ะ
ขอสอบถามเพิ่มเติมนะคะ
ช่อง cell F15:F19 เป็นช่องที่เราให้ผู้ใช้เติมค่าที่เป็นตัวเลข
แต่เราได้กำหนดไปแล้วว่า ให้ใส่ค่าได้เมื่อเลือก เลือก Method 2
โดยกำหนดไว้ที่ Data validation > Allow:Custom> Formula: $E$8 = "Method2"
แต่ถ้าเราอยากจะกำหนดให้ช่องที่ใส่ข้อมูลนี้รับแต่ค่าที่เป็นตัวเลขอย่างเดียว
จะใส่ตัวอักษรไม่ได้ เนื่องจากจะไม่สามารถคำนวณได้ค่ะ
เราต้องตั้งค่าเพิ่มอย่างไรบ้างคะ

ถ้าจะเลือก Data validation > Allow: whole number > Data: greater than > Minimun :0
เพื่อให้ใส่ค่าที่มากกว่า 0 ได้ไหมคะ และจะเอาไปเพิ่มกับคำสั่งเดิมอย่างไรคะ

แนบไฟล์ด้านล่างค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#9

Post by snasui »

:D ตัวอย่างการกำหนดให้กรอกได้เฉพาะตัวเลขและ E8 เป็น Method 2

ลองตามนี้ครับ


๑. คลุม F15:H19
๒. เข้าเมนู Data > Validation
๓. เปลี่ยนสูตรเดิมเป็นตามด้านล่าง

=AND($E$8="Method 2",ISNUMBER(F15))
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#10

Post by ANUSARA »

ขอบคุณมากค่ะ
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#11

Post by ANUSARA »

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$E$8" Then
If Target = "Method 1" Then
Range("C11") = "**Please select data**"
Range("F15:H19") = 0
Else
Range("C11") = "**Please select data**"
Range("F15:H19").ClearContents
End If
End If
Application.EnableEvents = True
End Sub

จาก ตรงบรรทัด Range("F15:H19") = 0 คือเซลล์มีหลายคอลัมน์ จะต้องไม่ merge cell ใช่ไหมคะ
แต่ถ้าในแต่ละแถวมี cell ที่มีหลาย column และถูก merge กันอยู่ จะต้องเขียน code อย่างไรคะ
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#12

Post by ANUSARA »

ต้องการกำหนด ให้เลือก Combo Box2 ได้เมื่อเลือก Method 2 และถ้าเลือก Method อื่นแล้ว Combo Box นี้จะถูกเลือกไม่ได้
และแสดงตัวเลือกเป็น Please click & select data ค้างไว้ค่ะ

และอยากกำหนดให้ เวลาใส่ค่า Custom จะต้องใส่ได้แต่ค่าตัวเลข จะต้องแก้ไขตรงไหนบ้างคะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#13

Post by snasui »

ANUSARA wrote:1. แต่ถ้าในแต่ละแถวมี cell ที่มีหลาย column และถูก merge กันอยู่ จะต้องเขียน code อย่างไรคะ
2. ต้องการกำหนด ให้เลือก Combo Box2 ได้เมื่อเลือก Method 2 และถ้าเลือก Method อื่นแล้ว Combo Box นี้จะถูกเลือกไม่ได้
และแสดงตัวเลือกเป็น Please click & select data ค้างไว้ค่ะ
ลองดู Code ด้านล่างครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    Application.EnableEvents = False
    If Target.Address = "$E$8" Then
        If Target = "Method 1" Then
            Range("C11") = "**Please select data**"
            With ComboBox2
                .Text = "Please Click & Select Data"
                .ListFillRange = ""
                .ShowDropButtonWhen = fmShowDropButtonWhenNever
            End With
            For Each r In Range("F15:F19")
                If r.MergeCells Then
                    r = 0
                Else
                    r = 0
                End If
            Next r
        Else
            Range("C11") = "**Please select data**"
            With ComboBox2
                .ListFillRange = "M24:M28"
                .ShowDropButtonWhen = fmShowDropButtonWhenAlways
            End With
            For Each r In Range("F15:F19")
                If r.MergeCells Then
                    r = ""
                    Else
                    r.ClearContents
                End If
            Next r
        End If
    End If
  Application.EnableEvents = True
End Sub
และอยากกำหนดให้ เวลาใส่ค่า Custom จะต้องใส่ได้แต่ค่าตัวเลข จะต้องแก้ไขตรงไหนบ้างคะ
ขอบคุณค่ะ
ลองดูตัวอย่างการปรับ Code ด้านล่างครับ

Code: Select all

Private Sub ComboBox2_Change()
     If Range("xSourceEx") = "Custom" Then
            xsourceex = InputBox(Prompt:="Enter Custom Quality Please.", Title:="PLEASE ENTER CUSTOM QUALITY", Default:="")
            Range("xSourceEx") = xsourceex
            If Not IsNumeric(xsourceex) Then
                MsgBox "Please enter numeric."
                ComboBox2.Text = ""
                Exit Sub
            End If
            Range("xSourceEx").NumberFormat = "General "" (Custom)"""
    Else
'        Range("xSourceEx") = Range("xSourceEx")
        Range("xSourceEx").NumberFormat = "General"
    End If
End Sub
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#14

Post by ANUSARA »

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Application.EnableEvents = False
If Target.Address = "$E$8" Then
If Target = "Method 1" Then
Range("C11") = "**Please select data**"
With ComboBox2
.Text = "Please Click & Select Data"
.ListFillRange = ""
.ShowDropButtonWhen = fmShowDropButtonWhenNever
End With
For Each r In Range("F15:F19")
If r.MergeCells Then
r = 0
Else
r = 0
End If
Next r
Else
Range("C11") = "**Please select data**"
With ComboBox2
.ListFillRange = "M24:M28"
.ShowDropButtonWhen = fmShowDropButtonWhenAlways
End With
For Each r In Range("F15:F19")
If r.MergeCells Then
r = ""
Else
r.ClearContents
End If
Next r
End If
End If
Application.EnableEvents = True
End Sub

code นี้ได้ตามที่ต้องการค่ะ
แต่พอกด ตัวเลือก Method 1แล้ว combo box จะหายไปค่ะ แต่มันยังพิมพ์อะไรต่างๆ หรือลบคำว่า Please click & select data ออกไปได้ค่ะ
จะมีคำสั่ง lock ไว้ไม่ให้แก้ไขอะไรเพิ่มเติมได้มีไหมคะ
ลองใช้ Data vlidation แล้วกำหนดให้เซลล์นั้นขึ้นกับ Method 2 เหมือนกัยที่ทำกับ Cell ปกติดูแต่ก็ยังไม่ได้ค่ะ

รบกวนอีกครั้งนะคะ
Code อื่นที่แนะนำมาใช้ได้ตามที่ต้องการค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#15

Post by snasui »

:D การ Disable Combo box ลองดู Code ตามด้านล่างครับ :mrgreen:

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    Application.EnableEvents = False
    If Target.Address = "$E$8" Then
        If Target = "Method 1" Then
            Range("C11") = "**Please select data**"
            With ComboBox2
                .Text = "Please Click & Select Data"
                .Enabled = False
            End With
            For Each r In Range("F15:F19")
                If r.MergeCells Then
                    r = 0
                Else
                    r = 0
                End If
            Next r
        Else
            Range("C11") = "**Please select data**"
            With ComboBox2
                .Enabled = True
                .ListFillRange = "M24:M28"
            End With
            For Each r In Range("F15:F19")
                If r.MergeCells Then
                    r = ""
                    Else
                    r.ClearContents
                End If
            Next r
        End If
    End If
  Application.EnableEvents = True
End Sub
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#16

Post by ANUSARA »

1 ลองเอา code มาวางแล้วค่ะ อย่างที่ต้องการคือเมื่อเลือก Method 1 แล้วcombobox 2 จะแก้ไขไม่ได้ค่ะ แต่เมื่อคลิกกลับมาเป็น Method 2 แล้ว combobox ไม่กลับมาให้เลือกรายการเหมือนเดิมได้ค่ะ

2 ถ้าเราให้ แสดงค่าจาก Combo box2 ที่ผู้ใช้เลือกไปแสดงผลใน Sheet2
แต่อยากให้แสดงค่าตามที่เลือกค่ะ เช่น 10, 20 , 50 หรืออื่นๆตามที่ผู้ใช้ใส่ค่ามา
แต่ถ้า Combo box นี้ไม่ถูกเลือก หรือถูกเลือกเป็น Please click & select data แล้ว
cell D5 ที่ Sheet2 ก็ให้แสดงค่าในช่องนั้นเป็นช่องว่างค่ะ

ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#17

Post by snasui »

:D คุณ ANUSARA ลองปรับ Code เองมาให้ดูด้วยครับว่าได้พยายามปรับด้วยตัวเองแล้ว

ถ้าคุณเคยใช้ VBA ย่อมจะต้องปรับ Code มาได้บ้างครับ เพราะการเปลี่ยนแปลง Code ย่อมเกิดขึ้นได้ตลอดเวลาถ้าความต้องการเปลี่ยนแปลงไป :mrgreen:
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#18

Post by ANUSARA »

ลองแก้เป็นแบบนี้ สามารถแก้ไขได้แล้วค่ะ
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Application.EnableEvents = False
If Target.Address = "$E$8" Then
If Target = "Method 1" Then
Range("C11") = "**Please select data**"
Range("F15:F19") = 0
With ComboBox2
.Text = "Please Click & Select Data"
.ListFillRange = ""
.ShowDropButtonWhen = fmShowDropButtonWhenNever
.Enabled = False
End With

Else
Range("C11") = "**Please select data**"
Range("F15:F19").ClearContents
With ComboBox2
.Enabled = True
.ListFillRange = "M24:M28"
.ShowDropButtonWhen = fmShowDropButtonWhenAlways
End With

End If
End If
Application.EnableEvents = True
End Sub

แต่ปัญหาอันนี้ยังแก้ไม่ได้เลยค่ะ
# ถ้าเราให้ แสดงค่าจาก Combo box2 ที่ผู้ใช้เลือกไปแสดงผลใน Sheet2
แต่อยากให้แสดงค่าตามที่เลือกค่ะ เช่น 10, 20 , 50 หรืออื่นๆตามที่ผู้ใช้ใส่ค่ามา
แต่ถ้า Combo box นี้ไม่ถูกเลือก หรือถูกเลือกเป็น Please click & select data แล้ว
cell D5 ที่ Sheet2 ก็ให้แสดงค่าในช่องนั้นเป็นช่องว่างค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#19

Post by snasui »

จาก
ANUSARA wrote:1 ลองเอา code มาวางแล้วค่ะ อย่างที่ต้องการคือเมื่อเลือก Method 1 แล้วcombobox 2 จะแก้ไขไม่ได้ค่ะ แต่เมื่อคลิกกลับมาเป็น Method 2 แล้ว combobox ไม่กลับมาให้เลือกรายการเหมือนเดิมได้ค่ะ
...ขอบคุณค่ะ
:D ผมทดสอบแล้ว Code ที่ผมปรับไปให้ครั้งล่าสุดสามารถใช้ได้ไม่มีปัญหาครับ ทีุ่คุณปรับมาให้นั้นผมยังไม่ถือว่าปรับครับ อย่าเพิ่งเสียกำลังใจ :lol:

สำหรับ Code ที่ต้องการให้ปรับมาก็คือตรงนี้ครับ
ANUSARA wrote:....2 ถ้าเราให้ แสดงค่าจาก Combo box2 ที่ผู้ใช้เลือกไปแสดงผลใน Sheet2
แต่อยากให้แสดงค่าตามที่เลือกค่ะ เช่น 10, 20 , 50 หรืออื่นๆตามที่ผู้ใช้ใส่ค่ามา
แต่ถ้า Combo box นี้ไม่ถูกเลือก หรือถูกเลือกเป็น Please click & select data แล้ว
cell D5 ที่ Sheet2 ก็ให้แสดงค่าในช่องนั้นเป็นช่องว่างค่ะ
ตัวอย่าง Code เพื่อบันทึกค่าใน Combobox2 ไปยัง D5 ของ Sheet2 ตามด้านล่างครับ

Code: Select all

Private Sub ComboBox2_Change()
     If Range("xSourceEx") = "Custom" Then
            xsourceex = InputBox(Prompt:="Enter Custom Quality Please.", Title:="PLEASE ENTER CUSTOM QUALITY", Default:="")
            Range("xSourceEx") = xsourceex
            If Not IsNumeric(xsourceex) Then
                MsgBox "Please enter numeric."
                ComboBox2.Text = ""
                Exit Sub
            End If
            Range("xSourceEx").NumberFormat = "General "" (Custom)"""
    Else
'        Range("xSourceEx") = Range("xSourceEx")
        Range("xSourceEx").NumberFormat = "General"
    End If
    If IsNumeric(ComboBox2.Text) Then
        Worksheets("Sheet2").Range("D5") = ComboBox2.Text
    Else
        Worksheets("Sheet2").Range("D5") = ""
    End If
End Sub
ANUSARA
Member
Member
Posts: 69
Joined: Wed Oct 06, 2010 11:12 pm

Re: Code VBA ที่กำหนดให้ผู้ใช้ใส่ข้อมูลบน Excel

#20

Post by ANUSARA »

1. ถ้าเปลี่ยนข้อมูลที่เลือกเป็นตัวหนังสือทั้งหมดไม่ใช่ตัวเลขแล้วต้องปรับ code อย่างไรคะ

เราให้ แสดงค่าจาก Combo box2 ที่ผู้ใช้เลือกไปแสดงผลใน Sheet2
แต่อยากให้แสดงค่าตามที่เลือกค่ะ เช่น closure,label, bottom หรืออื่นๆตามที่ผู้ใช้ใส่ค่ามา
แต่ถ้า Combo box นี้ไม่ถูกเลือก หรือถูกเลือกเป็น Please click & select data แล้ว
cell D5 ที่ Sheet2 ก็ให้แสดงค่าในช่องนั้นเป็นช่องว่างค่ะ

2. ตรง Msg ที่เคยขึ้นมาตอนพิมพ์ตัวอักษรแล้ว ขึ้นมาเตือนให้ใส่แต่ตัวเลข
แต่จะเปลี่ยนเป็นขึ้นมาเตือนให้ใส่เฉพาะตัวอักษร ไม่ให้ใส่ตัวเลข

ทั้ง 2 อย่างนี้ต้องปรับ code อย่างไรคะ
ลองเปลี่ยนจาก Numeric เป็น text ยังไม่ได้ค่ะ

ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
Post Reply