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
:D สามารถใช้ Code ด้านล่างครับ

Sheets("Purchase Order").select
Range("B17:H34,L3,G7,B7,C13").clearcontents

Re: เคลียร์ข้อมูลหลังกดบันทึก

Posted: Thu Oct 06, 2011 10:37 pm
by bank9597
:D ขอบคุณครับ

Re: เคลียร์ข้อมูลหลังกดบันทึก

Posted: Thu Oct 06, 2011 10:44 pm
by bank9597
:D เกิดข้อผิดพลาดครับอาจารย์ บันทึกข้อมูลได้ แต่ไม่เคลียร์ข้อมูลครับ มัน 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 ทุกบรรทัดเลยครับ มันไม่ได้คัดเอาไปแต่บันทัดที่มีการทำรายการไป
ว่าจะรอถามต่อไป แต่ไม่ทันล่ะ อิอิ :D

Re: เคลียร์ข้อมูลหลังกดบันทึก

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

Re: เคลียร์ข้อมูลหลังกดบันทึก

Posted: Thu Oct 06, 2011 11:09 pm
by bank9597
:D ขออภัยครับอาจารย์ พอดีไฟล์ใหญ่ และค่อนข้างเป็นความลับ ผมเลยแกะบางส่วนออกมาเป็นตัวอย่างให้อาจารย์ดูครับ

ในไฟล์นี้ ผมต้องการเคลียร์ 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
:D เซลล์ที่ผสานกันอยู่ชีทไหน เซลล์ไหน และที่ส่งมานั้นเป็น Code ที่ Update แล้วหรือไม่ ได้รวมเซลล์ที่ผสานมาด้วยแล้วยังครับ :?:

Re: เคลียร์ข้อมูลหลังกดบันทึก

Posted: Thu Oct 06, 2011 11:36 pm
by bank9597
:D ผมส่งตัวจริงไปให้น่ะครับ

ปัญหาตอนนี้คือ เวลาสั่งบันทึก มันจะบันทึกขู้อมูลจากชีท Temp ไปลง DataStore ทั้งหมดเลย โดยไม่ได้คัดแต่ตัวที่ทำรายการ

และอีกอย่างคือการเคลียร์ข้อมูลตามที่แจ้งไปแล้ว

รบกวนอาจารย์ดูอีกทีน่ะครับ
Test.xlsm

Re: เคลียร์ข้อมูลหลังกดบันทึก

Posted: Thu Oct 06, 2011 11:47 pm
by snasui
:D ลองปรับ 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
:D ได้แล้วครับ อิอิ
แต่ติดอยู่ที่ว่า ผมล็อคแผ่นงานไว้ ระบบเลยฟ้องให้ปลดล๊อคครับ ไม่งั้นมันจะไม่บันทึก ผมควรทำไงครับ เพราะผมต้องการป้องกันการเปลี่ยนแปลงสูตรและรูปแบบฟอร์ม

Re: เคลียร์ข้อมูลหลังกดบันทึก

Posted: Fri Oct 07, 2011 6:25 am
by snasui
:D ต้องเขียน 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
ปรากฏว่ามันก็ยังฟ้องอยู๋
:D แต่แปลกครับ ข้อมูลถูกบันทึกไปเก็บเรียบร้อย ติดอย่างเดียวคือระบบไม่เคลียร์ข้อมูลครับ

ผมได้แนบภาพที่เกิด error มาให้อาจารย์ดูด้วยครับ
untitled.JPG

Re: เคลียร์ข้อมูลหลังกดบันทึก

Posted: Fri Oct 07, 2011 12:12 pm
by snasui
:lol: ที่ยังติด 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
:D อย่างนี้เค้าเรียกว่า "เดา" ครับ ลองไปหลายวิธี หลายโค๊ด แล้วก็ยังไม่ได้
เลยต้อง เดา ครับ อิอิ

ขอบคุณอาจารย์น่ะครับ