Page 1 of 1

อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 8:17 am
by yangkodza

Code: Select all

Sub Macro1()

    Range("E8").Select      'เปลี่ยน
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWindow.SmallScroll Down:=-48
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, _
        Formula1:="=$E$7/2"     'เปลี่ยน
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -16776961
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = True
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:="=$E$7"     'เปลี่ยน
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -16711681
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = True
    Range("E8").Select     'เปลี่ยน
End Sub
จาก VBA ดังกล่าว จะมีจุดเปลี่ยนอยู่ 4 จุด คือต้องการเปลี่ยนคอลัม ทั้งหมด 20 คอลัม ครับ
งานผมมี คอลัม E ถึงคอลัม X
เราจะปรับ VBA อย่างไรให้ง่าย และกระชับครับ

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 5:23 pm
by DhitiBank
ตามกฎเกณฑ์ข้อ 4 ด้านบนครับ กรุณาแนบไฟล์ตัวอย่างมาด้วย เพื่อนๆ จะได้ช่วยทดสอบให้ได้ครับ

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 6:50 pm
by yangkodza
DhitiBank wrote:ตามกฎเกณฑ์ข้อ 4 ด้านบนครับ กรุณาแนบไฟล์ตัวอย่างมาด้วย เพื่อนๆ จะได้ช่วยทดสอบให้ได้ครับ
ขอโทษครับ



ภาพแรก เมื่อเราสั่ง Wash
Capture01.GIF
Capture01.GIF (49.15 KiB) Viewed 197 times
ภาพที่สอง เมื่อเราสั่ง Run Macro1
Capture02.GIF
Capture02.GIF (49.29 KiB) Viewed 197 times
ขาดอีก 1 ภาพ ผมขอส่งมาอีกโพสนะครับ ผมแทรกภาพประกอบได้แค่ 2 ภาพ
Macro.xlsm
(31.92 KiB) Downloaded 9 times

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 6:52 pm
by yangkodza
ภาพที่สาม เมื่อเราสั่ง Need
Capture03.GIF
Capture03.GIF (51.67 KiB) Viewed 196 times
Macro.xlsm
(31.92 KiB) Downloaded 14 times

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 7:36 pm
by snasui
:D ตัวอย่างการปรับ Code Macro3 ครับ

Code: Select all

Dim rall As Range, r As Range
With Sheets(1)
    Set rall = .Range("e9", .Range("x" & .Rows.Count).End(xlUp))
    For Each r In rall
        If r.Value > .Cells(7, r.Column) Then r.Interior.Color = vbRed
    Next r
End Wit

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 9:32 pm
by yangkodza
snasui wrote::D ตัวอย่างการปรับ Code Macro3 ครับ

Code: Select all

Dim rall As Range, r As Range
With Sheets(1)
    Set rall = .Range("e9", .Range("x" & .Rows.Count).End(xlUp))
    For Each r In rall
        If r.Value > .Cells(7, r.Column) Then r.Interior.Color = vbRed
    Next r
End Wit
อาจารย์ครับของอาจารย์เหมือนการเติมสีในช่องเซล
ผมอยากได้การจัดรูปแบบตามเงื่อนไข รบกวนอาจารย์ช่วยปรับให้ทีครับ
ขอบคุณมากครับ

เนื่องจากเวลาใช้งานจริง จะอ้างอิงที่ตัวคะแนนด้านบน
เช่น E7 คะแนนเต็ม 10
ใครได้คะแนนไม่ถึง E7/2 ก็เป็นอักษรสีแดง
ส่วนถ้ามีการกรอกผิดพลาดคะแนนเกิน 10 ก็ให้พื้นหลังแดงตัวเลขเป็นสีเหลือง
แต่ผมอยากได้การจัดรูปแบบตามเงื่อนไขครับ ขอบคุณมากครับ

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 9:42 pm
by snasui
yangkodza wrote:เนื่องจากเวลาใช้งานจริง จะอ้างอิงที่ตัวคะแนนด้านบน
เช่น E7 คะแนนเต็ม 10
ใครได้คะแนนไม่ถึง E7/2 ก็เป็นอักษรสีแดง
ส่วนถ้ามีการกรอกผิดพลาดคะแนนเกิน 10 ก็ให้พื้นหลังแดงตัวเลขเป็นสีเหลือง
แต่ผมอยากได้การจัดรูปแบบตามเงื่อนไขครับ ขอบคุณมากครับ
:D จัดรูปแบบด้วยเงื่อนไขสักเซลล์ก่อนแล้วค่อย Copy ไปใช้กับช่องอื่นครับ

การจัดรูปแบบด้วยเงื่อนไขไม่จำเป็นต้องจัดด้วย Code ครับ

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 9:47 pm
by yangkodza
snasui wrote:
yangkodza wrote:เนื่องจากเวลาใช้งานจริง จะอ้างอิงที่ตัวคะแนนด้านบน
เช่น E7 คะแนนเต็ม 10
ใครได้คะแนนไม่ถึง E7/2 ก็เป็นอักษรสีแดง
ส่วนถ้ามีการกรอกผิดพลาดคะแนนเกิน 10 ก็ให้พื้นหลังแดงตัวเลขเป็นสีเหลือง
แต่ผมอยากได้การจัดรูปแบบตามเงื่อนไขครับ ขอบคุณมากครับ
:D จัดรูปแบบด้วยเงื่อนไขสักเซลล์ก่อนแล้วค่อย Copy ไปใช้กับช่องอื่นครับ

การจัดรูปแบบด้วยเงื่อนไขไม่จำเป็นต้องจัดด้วย Code ครับ
ถึงบางอ้อครับ
ขอบคุณมากครับอาจารย์

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 10:02 pm
by yangkodza
อาจารย์ครับ แล้วถ้าเราต้องการปรับมาโครโดยกำหนดตัวแปร
ต้องปรับแบบไหนครับ

Range("&t1&'8").Select 'ต้องใส่ค่าแบบไหนครับ

Code: Select all

Sub Macro5()
Dim t1 As String
t1 = InputBox("กรุณาใส่คอลัม")
    Range("&t1&'8").Select 'ต้องใส่ค่าแบบไหนครับ
    Application.CutCopyMode = False
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, _
        Formula1:="=$E$7/2"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -16776961
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:="=$E$7"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -16711681
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 10:11 pm
by snasui
yangkodza wrote:Range("&t1&'8").Select 'ต้องใส่ค่าแบบไหนครับ
:D ที่เขียนมานั้นคือค่าอะไร เขียนเป็นคำอธิบายกำกับมาด้วยจะได้ทราบว่าต้องการจะทำอะไรครับ

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Fri Nov 18, 2016 10:43 pm
by yangkodza
snasui wrote:
yangkodza wrote:Range("&t1&'8").Select 'ต้องใส่ค่าแบบไหนครับ
:D ที่เขียนมานั้นคือค่าอะไร เขียนเป็นคำอธิบายกำกับมาด้วยจะได้ทราบว่าต้องการจะทำอะไรครับ
คือถ้าเราต้องการให้แสดงเป็นค่าของคอลัมครับ
t1 คือตัวแปร รับค่าเข้ามาใช้งานครับ

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Sat Nov 19, 2016 6:38 am
by snasui
:D กรณีต้องการให้คีย์คอลัมน์ เช่น A, B, C ฯลฯ แล้วนำมาเป็นค่าตัวแปรใน Range สามารถปรับ Code เป็นด้านล่างครับ

Columns(t1).Select

Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข

Posted: Sat Nov 19, 2016 11:19 am
by yangkodza
snasui wrote::D กรณีต้องการให้คีย์คอลัมน์ เช่น A, B, C ฯลฯ แล้วนำมาเป็นค่าตัวแปรใน Range สามารถปรับ Code เป็นด้านล่างครับ

Columns(t1).Select
ขอบคุณครับ :D