Page 1 of 3

เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Fri Sep 23, 2011 8:38 pm
by suka
สวัสดีค่ะอาจารย์
รบกวนถามค่ะ เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ เนื่องจากที่ชีท AY เซลล์ L5 ได้ดึงข้อมูลด้วยสูตรมาแสดง และต้องการกำหนดรูปแบบอักษรตามเงื่อนไข
หากมีค่าเท่ากับ 0 ให้อักษรเป็นสีขาว หากมีค่าเท่ากับ ///// ให้อักษรเป็นสีดำ ลองกำหนดแล้วไม่ได้ค่ะ รบกวนอาจารย์ช่วยด้วยค่ะ

ขอบพระคุณมากค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Fri Sep 23, 2011 8:49 pm
by snasui
:D ลองตามภาพครับ การเพิ่ม Condition ให้คลิกปุ่ม Add >> ครับ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Fri Sep 23, 2011 9:20 pm
by suka
อาจารย์คะ ขอบคุณค่ะทำได้แล้วค่ะ

ขอบพระคุณมากๆค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Sat Sep 24, 2011 12:15 pm
by suka
อาจารย์คะ ขอรบกวนเพิ่มค่ะ

หากต้องการทำการป้องกันการพิมพ์หมายเลขซ้ำ เช่นเล่มที่ H 392074 เลขที่ 6654582 นี้ได้มีการพิมพ์แล้ว
ไม่สามารถพิมพ์ซ้ำหมายเลขนี้ได้ค่ะ

ขอบคุณมากค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Sat Sep 24, 2011 12:29 pm
by snasui
:D ดูตัวอย่างที่นี่ครับ http://snasui.blogspot.com/2008/11/blog-post_5185.html

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Sat Sep 24, 2011 1:56 pm
by suka
ขอบคุณค่ะอาจารย์ สามารถป้องกันการคีย์ข้อมูลซ้ำได้แล้วค่ะ
ขอรบกวนเพิ่มค่ะ การทำเช่นนี้สามารถปรับมาใช้กับการ PrintReport ได้ไหมคะ

ขอบพระคุณมากๆค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Sat Sep 24, 2011 2:02 pm
by logic
:shock: Print Report คืออะไรครับ มีวิธีการทำงานอย่างไร เผื่อพอช่วยได้ครับ :tt:

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Sat Sep 24, 2011 2:18 pm
by suka
หากต้องการทำการป้องกันการพิมพ์หมายเลขซ้ำ เช่นเล่มที่ H 392074 เลขที่ 6654582 นี้ได้มีการพิมพ์แล้ว
ไม่สามารถพิมพ์ซ้ำหมายเลขนี้ได้ค่ะ
ยกตัวอย่างจากคำถามก่อนหน้าคือการป้องก้นการคีย์ข้อมูลซ้ำ

คำถามนี้หากสมมุติเราจะป้องก้นการ Print รายงานซ้ำเช่นเล่มที่ H 392074 เลขที่ 6654582 นี้ได้มีการสั้งพิมพ์แล้วคุณต้องการพิมพ์ซ้ำหมายเลขนี้หรือไม่ อย่างนี้เป็นต้นค่ะ

ขอบคุณค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Sat Sep 24, 2011 2:26 pm
by logic
เท่าที่ผมคิดนะ การ Print ก็ต้องเก็บข้อมูลไว้ด้วย ไม่เช่นนั้นโปรแกรมจะรู้ได้ไงว่าพิมพ์แล้วและพิมพ์ซ้ำ

ทีนี้ปัญหาคือ จะเก็บข้อมูลที่พิมพ์แล้วอย่างไรเพื่อที่จะเอาข้อมูลนั้นมาเช็คกับที่กำลังจะพิมพ์ ถ้าคุณเขียนโค๊ดมาโครได้ก็คงไม่ยาก พอพิมพ์แล้วก็เก็บไว้ในฐานข้อมูล แล้วใช้ฐานข้อมูลนี้เช็คกับค่าที่กำลังจะพิมพ์ แต่ถ้าเขียนไม่ได้ก็คงใช้แมน่วลละครับ :ugeek:

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Sat Sep 24, 2011 2:42 pm
by suka
โอ้ ขอบคุณค่ะคุณ logic ช่วยได้เยอะเลยค่ะ (ล้อเล่นนะคะ ขำ ขำ นะคะ) :lol: :lol:

ขอขอบคุณ คุณ logic มากค่ะ ในความมีน้ำใจดีตั้งใจช่วยเหลิอน่ะค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Sat Sep 24, 2011 2:51 pm
by snasui
:D ที่คุณ Logic โพสต์นั้นถูกต้องแล้วครับ เมื่อมีการพิมพ์แล้วก็ต้องเก็บข้อมูลไว้เพื่อจะตรวจสอบได้ว่าพิมพ์แล้วหรือยังไมพิมพ์ การเก็บข้อมูลอัตโนมัติคงต้องพึ่ง VBA และเช่นเคยครับ ถ้าจะใช้ VBA ก็เขียนมาก่อน ติดตรงไหนก็มาถามกันต่อครับ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Sat Sep 24, 2011 3:54 pm
by suka
ค่ะอาจารย์ คงต้องตามที่คุณ Logic โพสต์ไว้น่ะค่ะ " แต่ถ้าเขียนไม่ได้ก็คงใช้แมน่วลละครับ "
ใช่ค่ะต้องใช้ตามนั้นไปก่อนค่ะ เพราะยังไม่เข้าใจหรือมีสามารถที่จะเขียน VBA ได้ ค่ะ

ขอบพระคุณอาจารย์มากค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Tue Sep 27, 2011 4:20 pm
by suka
สวัสดีค่ะอาจารย์
ขอรบกวนถามเพิ่มค่ะ จะกำหนดรูปแบบอักษรตามเงื่อนไข ที่ชีท AY เซลล์ A3 หากมีค่าเท่ากับ 0 ให้อักษรเป็นสีขาว คือเงื่อนไขที่ 1
ปัญหาคือติดที่เงื่อนไขที่ 2 ค่ะ หากที่ชีท 2 เซลล์ I3 แสดงคำว่า "เบิก" ให้เครื่องหมายที่เซลล์ A3 ชีท AY เป็นสีขาว
ขอรบกวนอาจารย์ช่วยแนะนำด้วยค่ะ ขอบคุณอาจารย์มากค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Tue Sep 27, 2011 4:31 pm
by snasui
:D ลองปรับ Formula ตรง Condition เป็นตามด้านล่างครับ

=OR(A3=0,INDIRECT("Sheet2!I3")="เบิก")

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Tue Sep 27, 2011 4:52 pm
by suka
อาจารย์คะ ขอรบกวนช่วยตรวจว่าใช้สูตรผิดที่จุดใด ยังใช้ไม่ได้น่ะค่ะ

ขอบคุณค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Tue Sep 27, 2011 4:55 pm
by snasui
:D ส่งตัวอย่างไฟล์พร้อมอธิบายมาเพิ่มเติมครับว่า เมื่อเปลี่ยนเป็นค่าใดแล้ว ค่าที่ได้ควรจะเป็นอย่างไร สูตรที่ให้ไปคิดว่าไม่น่าจะผิดครับ

หากต้องการให้เส้นคู่ขนานที่วาดเป็นสีขาวนั้น ไม่สามารถทำได้ด้วย Conditional Formatting ครับ เนื่องจาก Conditional Formatting ใช้กับค่าในเซลล์ ไม่ได้ครอบคลุมถึง Object อื่น ๆ ครับ :mrgreen:

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Tue Sep 27, 2011 5:11 pm
by suka
ขออภัยค่ะอาจารย์ ก่อนหน้านี้ลืมแนบไฟล์ต้วอย่างค่ะ
หากต้องการให้เส้นคู่ขนานที่วาดเป็นสีขาวนั้น ไม่สามารถทำได้ด้วย Conditional Formatting ครับ เนื่องจาก Conditional Formatting ใช้กับค่าในเซลล์ ไม่ได้ครอบคลุมถึง Object อื่น ๆ ครับ
ค่ะต้องการให้เส้นคู่ขนานเป็นสีขาวค่ะ อาจารย์พอมีวิธีอื่นไหมคะ

ขอบคุณค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Tue Sep 27, 2011 5:25 pm
by snasui
:D ต้องใช้ VBA มาช่วยครับ ผมเขียนเป็นตัวอย่างมาให้แล้วตามด้านล่างครับ

Code: Select all

Sub HideLine()
If ActiveSheet.Range("A3") = 0 And _
    Sheets("Sheet2").Range("I3") = "เบิก" Then
    ActiveSheet.Shapes("Line 17").Visible = False
    ActiveSheet.Shapes("Line 18").Visible = False
Else
    ActiveSheet.Shapes("Line 17").Visible = True
    ActiveSheet.Shapes("Line 18").Visible = True
End If
End Sub

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Tue Sep 27, 2011 6:28 pm
by suka
อาจารย์คะ
Code ข้างบนนี้ระบุ Range("A3") Range("I3") และ Line 17,Line 18 เห็นเกี่ยวข้องกับชีทตัวอย่างทั้งสิ้น
ลองนำไปวางที่ Module1 เส้นคู่ก็ยังไม่เปลี่ยนแปลง

อาจารย์คะขอทราบความหมายของ Dim r As Range และ Dim i As Integer แล้วการทำงานต้องจับคู่กับอะไรบ้างคะ

และทุกครั้งที่เขียน Code VBA ต้องมี Dim r As Range และ Dim i As Integer ใช่ไหมคะ

ขอบคุณค่ะ

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ

Posted: Tue Sep 27, 2011 6:45 pm
by snasui
:D ลองเปลี่ยนคำว่า ActiveSheet เป็น Sheets("AY") แล้ว Run Code ดูใหม่ครับ
suka wrote:อาจารย์คะขอทราบความหมายของ Dim r As Range และ Dim i As Integer แล้วการทำงานต้องจับคู่กับอะไรบ้างคะ

และทุกครั้งที่เขียน Code VBA ต้องมี Dim r As Range และ Dim i As Integer ใช่ไหมคะ
ที่ถามนั้นเป็นการประกาศตัวแปร เพื่อจัดสรรหน่วยความจำในการ Run Code ครับ

Dim r As Range คือการประกาศให้ตัวแปร r เป็นช่วงเซลล์ใด ๆ หรือ เซลล์ใด ๆ
Dim i As Integer คือการประกาศให้ตัวแปร i มีค่าตั้งแต่ -32,768 ถึง 32,767

ดูที่นี่เพิ่มเติมครับ http://msdn.microsoft.com/en-us/library ... s.60).aspx

สำหรับคำถามที่ว่าการทำงานต้องจับคู่กับอะไร อันนี้ก็แล้วแต่เราครับ

ทุกครั้งต้องประกาศตัวแปรหรือไม่นั้น อันนี้แล้วแต่งานครับ งานที่มี Code ซับซ้อนและมีจำนวนมาก มีความจำเป็นต้องจัดสรรการใช้หน่วยความจำ จึงควรจะประกาศตัวแปรเสมอ