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 (49.15 KiB) Viewed 197 times
ภาพที่สอง เมื่อเราสั่ง Run Macro1

- Capture02.GIF (49.29 KiB) Viewed 197 times
ขาดอีก 1 ภาพ ผมขอส่งมาอีกโพสนะครับ ผมแทรกภาพประกอบได้แค่ 2 ภาพ
Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข
Posted: Fri Nov 18, 2016 6:52 pm
by yangkodza
ภาพที่สาม เมื่อเราสั่ง Need

- Capture03.GIF (51.67 KiB) Viewed 196 times
Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข
Posted: Fri Nov 18, 2016 7:36 pm
by snasui

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

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

จัดรูปแบบด้วยเงื่อนไขสักเซลล์ก่อนแล้วค่อย 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 'ต้องใส่ค่าแบบไหนครับ

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

ที่เขียนมานั้นคือค่าอะไร เขียนเป็นคำอธิบายกำกับมาด้วยจะได้ทราบว่าต้องการจะทำอะไรครับ
คือถ้าเราต้องการให้แสดงเป็นค่าของคอลัมครับ
t1 คือตัวแปร รับค่าเข้ามาใช้งานครับ
Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข
Posted: Sat Nov 19, 2016 6:38 am
by snasui

กรณีต้องการให้คีย์คอลัมน์ เช่น A, B, C ฯลฯ แล้วนำมาเป็นค่าตัวแปรใน Range สามารถปรับ Code เป็นด้านล่างครับ
Columns(t1).Select
Re: อยากเขียน Vba คลุม การจัดรูปแบบตามเงื่อนไข
Posted: Sat Nov 19, 2016 11:19 am
by yangkodza
snasui wrote:
กรณีต้องการให้คีย์คอลัมน์ เช่น A, B, C ฯลฯ แล้วนำมาเป็นค่าตัวแปรใน Range สามารถปรับ Code เป็นด้านล่างครับ
Columns(t1).Select
ขอบคุณครับ
