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

ลองตามภาพครับ การเพิ่ม 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
Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ
Posted: Sat Sep 24, 2011 1:56 pm
by suka
ขอบคุณค่ะอาจารย์ สามารถป้องกันการคีย์ข้อมูลซ้ำได้แล้วค่ะ
ขอรบกวนเพิ่มค่ะ การทำเช่นนี้สามารถปรับมาใช้กับการ PrintReport ได้ไหมคะ
ขอบพระคุณมากๆค่ะ
Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ
Posted: Sat Sep 24, 2011 2:02 pm
by logic

Print Report คืออะไรครับ มีวิธีการทำงานอย่างไร เผื่อพอช่วยได้ครับ

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

Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ
Posted: Sat Sep 24, 2011 2:42 pm
by suka
โอ้ ขอบคุณค่ะคุณ logic ช่วยได้เยอะเลยค่ะ (ล้อเล่นนะคะ ขำ ขำ นะคะ)
ขอขอบคุณ คุณ logic มากค่ะ ในความมีน้ำใจดีตั้งใจช่วยเหลิอน่ะค่ะ
Re: เซลล์ที่มีสูตรจะจัดการรูปแบบตามเงื่อนไขได้อย่างไรคะ
Posted: Sat Sep 24, 2011 2:51 pm
by snasui

ที่คุณ 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

ลองปรับ 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

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

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

ต้องใช้ 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

ลองเปลี่ยนคำว่า 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 ซับซ้อนและมีจำนวนมาก มีความจำเป็นต้องจัดสรรการใช้หน่วยความจำ จึงควรจะประกาศตัวแปรเสมอ