Page 1 of 1

ต้องการสูตร Reset ค่าและเริ่มนับใหม่ แบบมีเงื่อนไข

Posted: Mon Nov 09, 2020 4:09 pm
by nakhonchai
สวัสดีครับ อาจารย์ พี่ๆทุกท่าน

รบกวนขอสูตร Reset และเริ่มนับใหม่ แบบมีเงื่อนไข โดยมีหลักการดังนี้ครับ
- เมื่อ Process "Blaking" ที่ Part Name "A" ผลิตครบตามเงื่อนไขที่กำหนดหรือมีการเปลี่ยนก่อนที่กำหนด (กำหนดเงื่อนไขไว้ที่ "D6") จะทำการใส่วันที่ ที่เปลี่ยน ที่ช่อง Change Date ครั้งที่ 1
และหากมีการเปลี่ยนอีก จะใส่วันที่ ที่เปลี่ยนในช่อง change date ครั้งที่ 2 และChange Date ครั้งที่ 3, ........ฯลฯ
- ทุกครั้งเมื่อมีการใส่วันที่ ที่ช่อง Change Date ครั้งที่ 1, Change Date ครั้งที่ 2, ........ฯลฯ ให้ทำการ reset ค่าที่ช่อง "E6" เป็น "0"
- เมื่อมีการผลิตต่อให้ช่อง "E6" เริ่มต้นนับค่า 1 ใหม่
- และเมื่อผลิตไปเรื่อยๆ หากมีการเปลี่ยนอีกและใส่วันที่ในช่อง change date ครั้งที่ 2 ก็จะ reset ค่าเป็น "0" อีก
- ทำแบบนี้ไปเรื่อยๆ

ผมลองใส่สูตรนี้ และเมื่อใส่วันที่ที่ช่อง Change Date มันลบสูตรที่ลิ้งค์ในช่อง "E6" หายไปด้วยครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$K$6" Then
    Range("E6").ClearContents
End If
If Target.Address = "$N$6" Then
    Range("E6").ClearContents
End If
If Target.Address = "$Q$6" Then
    Range("E6").ClearContents
End If
If Target.Address = "$T$6" Then
    Range("E6").ClearContents
End If
If Target.Address = "$W$6" Then
    Range("E6").ClearContents
End If
End Sub
#ขอบคุณอาจารย์ และพี่ๆ มากครับ

Re: ต้องการสูตร Reset ค่าและเริ่มนับใหม่ แบบมีเงื่อนไข

Posted: Mon Nov 09, 2020 8:03 pm
by snasui
:D ที่เขียนมานั้นเรียกว่า Code จะไม่เรียกว่าสูตรครับ

ชวยแนบไฟล์ที่มี Code นั้นมาด้วย ไฟล์ที่จะแนบ Code ได้จะต้องมีนามสกุลเป็น .xlsm เช่นนี้เป็นต้นครับ

Re: ต้องการสูตร Reset ค่าและเริ่มนับใหม่ แบบมีเงื่อนไข

Posted: Mon Nov 09, 2020 8:25 pm
by nakhonchai
สวัสดีครับ อาจารย์

ขอโทษครับ
ผมแนบไฟล์ นามสกุล .xlsm มาให้ใหม่แล้วครับ
รบกวนอาจารย์ช่วยแนะนำด้วยครับ

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

Re: ต้องการสูตร Reset ค่าและเริ่มนับใหม่ แบบมีเงื่อนไข

Posted: Mon Nov 09, 2020 9:05 pm
by snasui
:D ยังไม่เข้าใจโจทย์ครับ

ดูไปทีละข้อครับ
- เมื่อ Process "Blaking" ที่ Part Name "A" ผลิตครบตามเงื่อนไขที่กำหนดหรือมีการเปลี่ยนก่อนที่กำหนด (เงื่อนไขกำหนดไว้ที่ "D7") จะทำการใส่วันที่เปลี่ยน ที่ช่อง Change Date ครั้งที่ 1 และหากมีการเปลี่ยนอีก จะใส่วันที่ ที่เปลี่ยนในช่อง change date ครั้งที่ 2 และChange Date ครั้งที่ 3, ........ฯลฯ
Part Name "A" เริ่มบรรทัดที่ 6 แต่หนดเงื่อนไขไว้ที่ D7 แล้ว Part Name "B" กำหนดเงื่อนไขไว้ที่เซลล์ไหนครับ

กรณีเปลี่ยนก่อนที่กำหนด โปรแกรมจะรู้ได้อย่างไรว่าเปลี่ยนก่อนครับ

Re: ต้องการสูตร Reset ค่าและเริ่มนับใหม่ แบบมีเงื่อนไข

Posted: Mon Nov 09, 2020 10:10 pm
by nakhonchai
สวัสดีครับ อาจารย์

ผมขอโทษครับผมอธิบายไม่ดี ลืมแก้ไขครับ
ผมแนบไฟล์แก้ไขให้ใหม่แล้วครับ
แถว Part Name "A"
- เมื่อ Process "Blaking" ที่ Part Name "A" ผลิตครบตามเงื่อนไขที่กำหนดหรือมีการเปลี่ยนก่อนที่กำหนด (เงื่อนไขกำหนดไว้ที่ "D6") จะทำการใส่วันที่เปลี่ยน ที่ช่อง Change Date ครั้งที่ 1 ที่ (K6)
และหากมีการเปลี่ยนอีก จะใส่วันที่ ที่เปลี่ยนในช่อง change date ครั้งที่ 2 ที่ (N6) และหากเปลี่ยนอีก ก็ใส่ที่ Change Date ครั้งที่ 3 ที่ (Q6) , ........แบบนี้ไปเรื่อยๆ
- ทุกครั้งเมื่อมีการใส่วันที่ ที่ช่อง Change Date ครั้งที่ 1ที่ (K6), Change Date ครั้งที่ 2 ที่ (N6), ........ฯลฯ ให้ทำการ reset ค่าที่ช่อง "E6" เป็น "0"
- เมื่อมีการผลิตต่อให้ช่อง "E6" เริ่มต้นนับค่า 1 ใหม่
- และเมื่อผลิตไปเรื่อยๆ หากมีการเปลี่ยนอีกและใส่วันที่ในช่อง change date ครั้งที่ 2 ก็จะ reset ค่าที่ช่อง "E6" เป็น "0" อีก

แถว Part Name "B"
- เมื่อ Process "Blaking" ที่ Part Name "B" ผลิตครบตามเงื่อนไขที่กำหนดหรือมีการเปลี่ยนก่อนที่กำหนด (เงื่อนไขกำหนดไว้ที่ "D7") จะทำการใส่วันที่เปลี่ยน ที่ช่อง Change Date ครั้งที่ 1 ที่ (K7)
และหากมีการเปลี่ยนอีก จะใส่วันที่ ที่เปลี่ยนในช่อง change date ครั้งที่ 2 ที่ (N7) และหากเปลี่ยนอีก ก็ใส่ที่ Change Date ครั้งที่ 3 ที่ (Q7) , ........แบบนี้ไปเรื่อยๆ
- ทุกครั้งเมื่อมีการใส่วันที่ ที่ช่อง Change Date ครั้งที่ 1 ที่ (K7), Change Date ครั้งที่ 2 ที่ (N7) , ........ฯลฯ ให้ทำการ reset ค่าที่ช่อง "E7" เป็น "0"
- เมื่อมีการผลิตต่อให้ช่อง "E7" เริ่มต้นนับค่า 1 ใหม่
- และเมื่อผลิตไปเรื่อยๆ หากมีการเปลี่ยนอีกและใส่วันที่ในช่อง change date ครั้งที่ 2 ก็จะ reset ค่าที่ช่อง "E7" เป็น "0" อีก
ขอบพระคุณมากครับ

Re: ต้องการสูตร Reset ค่าและเริ่มนับใหม่ แบบมีเงื่อนไข

Posted: Sat Nov 14, 2020 9:43 am
by snasui
:D ปัจจุบันเรื่องการ Clear ค่าทิ้งได้เขียนเอาไว้เองแล้วโดยใช้ Event Worksheet_Change

แต่ต้องอธิบายเพิ่มมาว่าการคีย์วันที่ตามคอลัมน์ต่าง ๆ ที่กล่าวมาใช้เหตุการณ์ใดเข้าไปตรวจสอบครับ

คำว่า "ครบตามกำหนดหรือเปลี่ยนก่อนกำหนด" ต้องอธิบายให้ได้ว่าโปรแกรมจะทราบได้อย่างไรว่าครบตามกำหนด และ เปลี่ยนก่อนกำหนดก็เช่นกันโปรแกรมจะทราบได้อย่างไรว่าเปลี่ยนก่อนกำหนด

แนวทางหนึ่งของการเช็คว่าครบหรือไม่ครบสามารถใช้การ Loop เข้าไปตรวจสอบคอลัมน์ E ทีละค่าว่าเกินหรือไม่เกินไปจากค่าในคอลัมน์ D หากเท่ากับหรือเกินก็ถือว่าครบแล้ว จากนั้นค่อยไปใส่วันที่ในคอลัมน์ที่แจ้งมา

แต่การใส่วันที่ก็ต้องเช็คว่าวันที่ในคอลัมน์นั้น ๆ มีอยู่แล้วหรือไม่ หากมีแล้วก็ให้ไปเช็คในคอลัมน์ถัดไป หากเต็มทุกวันที่แล้วจะให้ดำเนินการอย่างไรก็ต้องมีแนวทางในการกำหนดเอาไว้ด้วยครับ

เบื้องต้นลองเขียนมาเองตามแนวทางนี้ก่อน ติดตรงไหนค่อยนำ Code นั้นมาถามกันต่อครับ