Page 1 of 1

รบกวนกูรูทุกท่านช่วยดูหน่อยครับ การเปลี่ยนสีปุ่ม

Posted: Thu Jul 25, 2013 10:21 am
by ณัฐวุฒิ เบ็ญชา
ตาม File แนบผมได้เขียนการตรวจสอบการเก็บสินค้าเข้าตำแหน่งเก็บ โดยการที่เมื่อกด ตรวจสอบตำแหน่งเก็บ ถ้ามีของจะเป็นสีแดง แต่ถุ้าไม่มีของจะเป็นสีเขียว
โดยการตรวจสอบใน Sheet DB A เบื่องต้นได้ทำการ เขียนไปแล้วบางส่วนซึ้งก็ใช้การแต่ แต่ปุ่มที่ใช้มีจำนวนเยอะมากเลยจะขอวิธีที่ง่ายกว่านี้โดยการ วนลูป หรือ ท่านใดมีวิธีไหนแนะนำ ขอคำแนะนำหน่อยครับ :flw: :flw: :flw:

Re: รบกวนกูรูทุกท่านช่วยดูหน่อยครับ การเปลี่ยนสีปุ่ม

Posted: Thu Jul 25, 2013 3:34 pm
by snasui
:D ไม่เข้าใจครับ ช่วยเขียนอธิบายว่าขั้นตอนการทดสอบมีอะไรบ้าง คำตอบที่ต้องการคืออะไร จะได้เข้าใจตรงกัน

Re: รบกวนกูรูทุกท่านช่วยดูหน่อยครับ การเปลี่ยนสีปุ่ม

Posted: Thu Jul 25, 2013 4:11 pm
by ณัฐวุฒิ เบ็ญชา
ครับผม คือ ผมต้องการเขียนโปรแกรม 1 ตัวซึ้งโปรแกรมตัวนี้ใช้ตรวจสอบการเก็บสินค้าแต่ละตำแหน่ง โดย 1 Button ใช้แทนตำแหน่งเก็บ 1 ตำแหน่งซึ้งทั้งหมดมีประมาณ 260 ตำแหน่งนั้นคือ 260 Button ซึ้งการตรวจสอบก็คือ เมื่อคลิ๊กปุ่ม ตรวจสอบตำแหน่ง ใน Form Home โปรแกรมก็จะไปตรวจสอบที่ Sheet2(DB A)
ว่ามีตำแหน่งไหนบ้างที่ว่าง ถ้ามีของปุ่มก็จะเปลี่ยนเป็นสีแดง ส่วนถ้าว่างปุ่มจะเป็นสีเขียว ซึ้งโค้ดเขียนได้ คราวๆ ดังนี้

Code: Select all

If Sheet2.Cells(3, 8) = "" Then 'A2-1
    A2_1.BackColor = RGB(0, 255, 0) 'เขียว
Else
    A2_1.BackColor = RGB(255, 0, 0) 'แดง
End If
แต่ถ้าเขียนโค้ดในลักษณะนี้ต้องเขียน 260 กว่าเงื่อนไข ซึ้งมันเยอะ มาก เลยอยากถามว่ามีวิธีอื่นหรือไม่ที่จะไล่เปลี่ยนสีปุ่มกดโดยไม่ต้องกำหนดทีละปุ่ม โค้ดวางนี้คือ เปลี่ยนสีแค่ 1 ปุ่มครับ ประมาณว่า วนลูป Sheet2 (DB A) ที่มีข้อมูลทั้งหมดแล้ว ถ้าช่องไหนที่ว่าง ก็ให้เปลี่ยนสีเลยโดยที่ไม่ต้องกำหนดทีละปุ่มอะครับ

Re: รบกวนกูรูทุกท่านช่วยดูหน่อยครับ การเปลี่ยนสีปุ่ม

Posted: Thu Jul 25, 2013 5:11 pm
by snasui
:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Check_A()
    Dim rAll As Range, r As Range
    On Error Resume Next
    With Sheets("DB A")
        Set rAll = .Range("A2", .Range("a" & Rows.Count).End(xlUp))
    End With
    For Each r In rAll
           If r.Offset(0, 8) <> "" Then
            HOME.Controls(Replace(r.Value, "-", "_")).BackColor = RGB(0, 255, 0)
        Else
            HOME.Controls(Replace(r.Value, "-", "_")).BackColor = RGB(255, 0, 0)
        End If
    Next r
End Sub

Re: รบกวนกูรูทุกท่านช่วยดูหน่อยครับ การเปลี่ยนสีปุ่ม

Posted: Thu Jul 25, 2013 5:38 pm
by ณัฐวุฒิ เบ็ญชา
OK ได้แล้วครับ ขอบคุณมากครับ อาจารย์นิ สุดยอดด จริงๆ อิอิ :thup: :thup: :thup: :thup: