Page 1 of 1
เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 10:29 pm
by bank9597
จากโค๊ดนี้ครับ
Sheets("Purchase Order").Select
[B17:H34].ClearContents
หลังจากสั่งบันทึกแล้ว ระบบจะเคลียร์ข้อมูล B17:H34 ออกไป
หากผมต้องการใส่คำสั่งเคลียร์ L3,G7,B7,C13 เพิ่มไปอีก ผมควรใส่โค๊ดต่ออย่างไรครับอาจารย์
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 10:33 pm
by snasui

สามารถใช้ Code ด้านล่างครับ
Sheets("Purchase Order").select
Range("B17:H34,L3,G7,B7,C13").clearcontents
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 10:37 pm
by bank9597

ขอบคุณครับ
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 10:44 pm
by bank9597

เกิดข้อผิดพลาดครับอาจารย์ บันทึกข้อมูลได้ แต่ไม่เคลียร์ข้อมูลครับ มัน Error
โค๊ดทั้งหมด
Sub Button7_Click()
Dim i As Integer
If Range("B17") <> "" Then
i = WorksheetFunction.CountA(Range("B17:B34")) + 16
Sheets("Temp").Select
Range("A2:H19").Select
Selection.Copy
Sheets("DataStore").Select
Range("Target").Select
Selection.PasteSpecial xlPasteValues
Sheets("Purchase Order").Select
Range("B17:H34,L3,G7,B7,C13").ClearContents
Else
MsgBox ("¤Ø³ÂѧäÁèàÅ×Í¡ÊÔ¹¤éÒ")
Range("B17").Activate
End If
End Sub
ต่ออีกนิดครับ พอดีว่าเวลาสั่งบันทึก ระบบจะบันทึกข้อมูลในชีท Temp ไปลงใน DataStore ทุกบรรทัดเลยครับ มันไม่ได้คัดเอาไปแต่บันทัดที่มีการทำรายการไป
ว่าจะรอถามต่อไป แต่ไม่ทันล่ะ อิอิ

Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 10:53 pm
by snasui

ลองกดแป้น F8 เพื่อ Run ทีละ Step แล้วสังเกตว่า Error ตรงบรรทัดไหนครับ ถ้าจะให้ดีการถามควรส่งตัวอย่างไฟล์มาด้วยจะได้ช่วยตรวจสอบได้ครับ
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 11:09 pm
by bank9597

ขออภัยครับอาจารย์ พอดีไฟล์ใหญ่ และค่อนข้างเป็นความลับ ผมเลยแกะบางส่วนออกมาเป็นตัวอย่างให้อาจารย์ดูครับ
ในไฟล์นี้ ผมต้องการเคลียร์ C1,C2 ด้วยครับ
BB.xls
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 11:16 pm
by bank9597
รู้แล้วครับอาจารย์ มันฟ้องว่าไม่สามารถเคลียร์ได้ เพราะ เซลล์ที่ถูกสั่งให้เคลียร์นั้น เป็นเซลล์ที่ถูกผสานครับ
แล้วจะแก้ยังไงล่ะครับ เฮ้อ!! อิอิ
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 11:21 pm
by snasui

เซลล์ที่ผสานกันอยู่ชีทไหน เซลล์ไหน และที่ส่งมานั้นเป็น Code ที่ Update แล้วหรือไม่ ได้รวมเซลล์ที่ผสานมาด้วยแล้วยังครับ

Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 11:36 pm
by bank9597

ผมส่งตัวจริงไปให้น่ะครับ
ปัญหาตอนนี้คือ เวลาสั่งบันทึก มันจะบันทึกขู้อมูลจากชีท Temp ไปลง DataStore ทั้งหมดเลย โดยไม่ได้คัดแต่ตัวที่ทำรายการ
และอีกอย่างคือการเคลียร์ข้อมูลตามที่แจ้งไปแล้ว
รบกวนอาจารย์ดูอีกทีน่ะครับ
Test.xlsm
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 11:47 pm
by snasui

ลองปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Sub Button7_Click()
If Range("B17") <> "" Then
Sheets("Temp").Select
Range("A2:H19").Resize(Range("I1"), 8).Select
Selection.Copy
Sheets("DataStore").Select
Range("Target").Select
Selection.PasteSpecial xlPasteValues
Sheets("Purchase Order").Select
Range("B17:H34,L3,G7,C13").SpecialCells(xlCellTypeConstants).ClearContents
Else
MsgBox ("คุณยังไม่เลือกสินค้า")
Range("B17").Activate
End If
End Sub
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Thu Oct 06, 2011 11:57 pm
by bank9597

ได้แล้วครับ อิอิ
แต่ติดอยู่ที่ว่า ผมล็อคแผ่นงานไว้ ระบบเลยฟ้องให้ปลดล๊อคครับ ไม่งั้นมันจะไม่บันทึก ผมควรทำไงครับ เพราะผมต้องการป้องกันการเปลี่ยนแปลงสูตรและรูปแบบฟอร์ม
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Fri Oct 07, 2011 6:25 am
by snasui

ต้องเขียน Code ให้ปลด Lock ก่อนครับ เช่น
Code: Select all
'Oter code
Activesheet.Unprotect Password:="abc"
'Other code
Activesheet.Protect Password:="abc"
End Sub
ดูตัวอย่างเพิ่มเติมที่นี่ครับ
http://www.snasui.com/viewtopic.php?p=1 ... 4d4#p10337
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Fri Oct 07, 2011 11:34 am
by bank9597
ผมได้เพิ่มโค๊ดนี้ไปครับ
Code: Select all
Public Sub unlocksheet()
'unlock the worksheet
On Error Resume Next
ActiveSheet.Unprotect Password:="240130"
End Sub
Public Sub locksheet()
'lock the worksheet
On Error Resume Next
ActiveSheet.Protect Password:="240130"
End Sub
ปรากฏว่ามันก็ยังฟ้องอยู๋

แต่แปลกครับ ข้อมูลถูกบันทึกไปเก็บเรียบร้อย
ติดอย่างเดียวคือระบบไม่เคลียร์ข้อมูลครับ
ผมได้แนบภาพที่เกิด error มาให้อาจารย์ดูด้วยครับ
untitled.JPG
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Fri Oct 07, 2011 12:12 pm
by snasui

ที่ยังติด Error คิดว่าเพราะเข้าใจยังไม่ถูกต้องครับ ดู
ตัวอย่าง Code ด้านล่างว่าปลด Lock ตอนไหน และ Lock กลับเข้าไปใหม่ตอนไหน
Code: Select all
Sub Button7_Click()
activesheet.unprotect password:="xyx" '<==UnProtect
If Range("B17") <> "" Then
Sheets("Temp").Select
Range("A2:H19").Resize(Range("I1"), 8).Select
Selection.Copy
Sheets("DataStore").Select
Range("Target").Select
Selection.PasteSpecial xlPasteValues
Sheets("Purchase Order").Select
Range("B17:H34,L3,G7,C13").SpecialCells(xlCellTypeConstants).ClearContents
Else
MsgBox ("คุณยังไม่เลือกสินค้า")
Range("B17").Activate
End If
activesheet.protect password:="xyx" '<== Protect Again
End Sub
Re: เคลียร์ข้อมูลหลังกดบันทึก
Posted: Fri Oct 07, 2011 12:19 pm
by bank9597

อย่างนี้เค้าเรียกว่า "เดา" ครับ ลองไปหลายวิธี หลายโค๊ด แล้วก็ยังไม่ได้
เลยต้อง เดา ครับ อิอิ
ขอบคุณอาจารย์น่ะครับ