Page 4 of 6

Re: การแปลงข้อมูล

Posted: Wed Sep 07, 2011 10:45 pm
by snasui
:lol:
Bafnet wrote:Sheet10.Range("A1:T" & n & ") มันบัคครับ
ลองเปลี่ยนเป็นแบบนี้แทนครับ

Code: Select all

Sheet10.Range("A1:T" & n)

Re: การแปลงข้อมูล

Posted: Thu Sep 08, 2011 12:55 am
by Bafnet
สวัสดีครับ :roll:
คิดว่าจะเสร็จงานได้ในค่ำคืนนี้เพราะต้องส่งงานวันที่8นี้
การเลื่อนงวดมีปัญหาครับ
หากอาจารย์ตื่นมาและได้เข้ามารบกวนดูให้ผมหน่อยนะครับ
ลองรันโปรแกรมสัญญาแรกก็เจออย่างจังครับ
REงวดชำระ1.xlsx

Re: การแปลงข้อมูล

Posted: Thu Sep 08, 2011 7:07 am
by snasui
:D ลองดูตัวอย่างการปรับสูตรตามไฟล์แนบ ซึ่งต้องปรับหลาย ๆ สูตรตามเงื่อนไขที่เพิ่มเข้ามาและจะยิ่งซับซ้อนขึ้นเรื่อย ๆ ครับ สำหรับการปัดเศษให้ศึกษาเพิ่มเติมได้จากที่นี่ครับ http://office.microsoft.com/th-th/excel ... 56144.aspx

Re: การแปลงข้อมูล

Posted: Thu Sep 08, 2011 8:53 am
by Bafnet
:lol: สวัสดีครับ
ขอบคุณมากครับสำหรับทุกทางแก้ที่มีให้
เริ่มจะเข้าใจสูตรการหาจำนวนบรรทัด
และเริ่มเขียน If :ซ้อนเงื่อนไขเพื่อดักความเป็นไปได้ที่จะเกิดกรณีต่างๆขึ้น
คิดว่าน่าจะสำเร็จ
ขอขอบคุณอาจารย์อีกครั้ง

Re: การแปลงข้อมูล

Posted: Mon Sep 12, 2011 8:46 pm
by Bafnet
สวัสดีครับอาจารย์
อาจารย์สบายดีนะครับ ผมไม่ได้เข้ามาหลายวัน
ไปทำใจมาครับ ก็ทำโปรแกรมนี้จนเสร็จ แล้วผมก็นำไปทำตัวติดตั้ง
ปรากฎว่าไฟล์พังไปเลยครับ :oops: เปิดไม่ได้มันบอกว่าส่วนขยายผิด
ก็เลยต้องนั่งทำใหม่ซึ่งมีสำเนาอยู่ แต่ห่างจากวันที่สำเร็จย้อนหลังไป5 วัน
วันนี่ก็เสร็จแล้วครับ
มีคำถามอีกสักเล็กน้อย
อาจารย์ครับผมไม่ต้องการให้ผู้ใช้เพิ่มชีทใดๆในโปรแกรมนี้ (ไม่ใช่คำสั่งปิดแท็ปแผ่นงานนะครับ)
จะเขียนคำสั่งตอน Workboos Open อย่างไรครับ
ขอบคุณครับ :|

Re: การแปลงข้อมูล

Posted: Mon Sep 12, 2011 9:06 pm
by Bafnet
สวัสดีครับ
อีกนิดหนึ่งครับ
เวลา Coppy File และเปิดโปรแกรม
ด้านบนใกล้แถบสูตร มันจะปรากฏแถบสีเหลืองพร้อมปุ่มที่บอกว่าเปิดใช้เนื้อหา
รบกวนอาจารย์แนะคำสั่งที่ให้เปิดการใช้เนื้อหาโดยอัตโนมัติ
ตอนนี้ผมมีแค่คำสั่งเดียวครับ

Code: Select all

Private Sub Workbook_Open()
Application.AskToUpdateLinks = False
ห้ามเพิ่มชีท
ให้เปิดการใช้งาน=True
End Sub
ขอบคุณครับ

Re: การแปลงข้อมูล

Posted: Mon Sep 12, 2011 9:37 pm
by snasui
:D ช่วยจับภาพหน้าจอแสดงข้อความที่ว่านั้นมาให้ดูหน่อยครับ

Re: การแปลงข้อมูล

Posted: Mon Sep 12, 2011 10:53 pm
by Bafnet
สวัสดีครับ
หวังว่าอาจารย์คงยังอยู่นะครับ อยากให้สำเร็จในค่ำคืนนี้ครับ
sd.jpg
ขอห้ามเพิ่มชีทด้วยนะครับ :mrgreen:

Re: การแปลงข้อมูล

Posted: Tue Sep 13, 2011 7:31 am
by snasui
Bafnet wrote:โค้ด: เลือกทั้งหมด
Private Sub Workbook_Open()
Application.AskToUpdateLinks = False
ห้ามเพิ่มชีท
ให้เปิดการใช้งาน=True
End Sub
ลองตามนี้ครับ

Code: Select all

Private Sub Workbook_Open()
Application.AskToUpdateLinks = False
ActiveProtectedViewWindow.Close
ActiveWorkbook.Protect Structure:=True
End Sub

Re: การแปลงข้อมูล

Posted: Tue Sep 13, 2011 12:50 pm
by Bafnet
สวัสดีครับอาจารย์
ตอนนี้งานเสร็จแล้วครับแต่รู้สึกว่าแปลกๆอยู่
ขอปรึกษาหน่อยนะครับ
ในชิ้นงานนี้ ในVb /tool/references เราได้มีการกำหนดค่าไว้
มันจะส่งผลไหมครับเมื่อนำ ชิ้นงานที่ผมสร้างขึ้นนี้ไปติดตั้งและเปิดกับเครื่องอื่นๆ
c.jpg
รวมถึงเรื่องการกำหนดค่าความปลอดภัยของมาโคร
เมื่อสักครู่ได้ลองนำไปติดตั้ง มันมีอาการลักษณะอย่างนี้ครับ
c1.jpg
อาจารย์ครับผมต้องการให้มันใช้ได้เมื่อนำไปใช้เครื่องอื่น
เราจะทำอย่างไรครับเพื่อให้เมื่อเปิดไฟล์ คุณสมบัติต่างๆรวมถึงระดับความปลอดภัยของมาโคร
ถูกเปิดใช้งานคือพร้อมใช้ ผู้ใช้สามารถใช้ได้เลย ผมไม่รู้จะอธิบายอย่างไร :roll:
แต่หวังว่าอาจารย์คงเข้าใจถึงความต้องการ
รบกวนด้วยนะครับ
Private Sub Workbook_Open()
Application.AskToUpdateLinks = False
ActiveProtectedViewWindow.Close
ActiveWorkbook.Protect Structure:=True
End Sub

Re: การแปลงข้อมูล

Posted: Tue Sep 13, 2011 1:26 pm
by snasui
:D ความปลอดภัยของ Macro และการกำหนดค่า Reference จะขึ้นอยู่กับโปรแกรมไม่ได้ขึ้นกับไฟล์ ดังนั้น เครื่องไหนที่จะนำไฟล์ไปใช้ก็ต้องกำหนดค่าใหม่ครับ

Re: การแปลงข้อมูล

Posted: Tue Sep 13, 2011 3:55 pm
by Bafnet
snasui wrote:การกำหนดค่า Reference จะขึ้นอยู่กับโปรแกรมไม่ได้ขึ้นกับไฟล์ ดังนั้น เครื่องไหนที่จะนำไฟล์ไปใช้ก็ต้องกำหนดค่าใหม่ครับ
เราเขียนคำสั่งใน vb ไม่ได้หรือครับ
มีคำสั่งในการกำหนดค่าพวกนี้ไหมครับ
ถ้าอย่างนั้นหมายความว่าผู้ใช้ต้องเข้า หน้า vb เป็นเพื่อกำหนด Reference
:?
คุณสมบัติของไฟล์ในส่วนนี้ไม่ได้ตามไปด้วย
อาจารย์มีคำแนะนำอย่างไรครับ

Re: การแปลงข้อมูล

Posted: Tue Sep 13, 2011 4:05 pm
by snasui
แนะนำไปแล้วครับ :lol: :ard:
snasui wrote: :D ความปลอดภัยของ Macro และการกำหนดค่า Reference จะขึ้นอยู่กับโปรแกรมไม่ได้ขึ้นกับไฟล์ ดังนั้น เครื่องไหนที่จะนำไฟล์ไปใช้ก็ต้องกำหนดค่าใหม่ครับ

Re: การแปลงข้อมูล

Posted: Fri Sep 16, 2011 4:20 pm
by Bafnet
สวัสดีครับอาจารย์
ตอนนี้กำลังทดสอบครับ
มีปัญหามาเรียนถามหน่อยครับ
ผมนำไฟล์ดังกล่าวไปสร้างเป็นไฟล์Setup
ซึ่งก็ใช้ได้ครับ
แต่สงสัยอยู่ว่าพอเปิดไฟล์ คุณลักษณะที่มันแจ้งด้านบนว่าเป็น Read-only
ทำให้ไม่สามารถบันทึกไฟล์ได้
ทั้งๆที่คำสั่งตอนเปิดผมก็มีเพียงคำสั่งด้านล่างนี้เพียงคำสั่งเดียว

Code: Select all

Private Sub Workbook_Open()
Application.AskToUpdateLinks = False
End Sub
ถ้าจะเขียนคำสั่งให้เมื่อเปิดไม่ใช่เป็น Read-Only ต้องทำอย่างไรครับ
รบกวนด้วยนะครับ

Re: การแปลงข้อมูล

Posted: Fri Sep 16, 2011 5:39 pm
by snasui
:sg: ลองทดสอบวิธีอ้อม ๆ ดูครับ สร้างไฟล์ชื่อ Temp.xls มา 1 ไฟล์ ใน ThisWorkbook ให้นำ Code นี้ไปวาง

Code: Select all

Private Sub Workbook_Open()
    Workbooks.Open Filename:="D:\Bookx1.xls", _
    ignorereadonlyrecommended:=True
    Workbooks("Temp.xls").Close False
End Sub
เมื่อเปิดไฟล์ Temp แล้ว Code ในไฟล์ Temp ไปเปิดไฟล์ Bookx1 ที่เก็บใน Path D: โดยกำหนดให้เปิดด้วยการ Ignore read only จากนั้นปิดไฟล์ Temp ลง ได้ผลหรือไม่แจ้งด้วยครับ

Re: การแปลงข้อมูล

Posted: Fri Sep 16, 2011 8:58 pm
by Bafnet
สวัสดีครับอาจารย์
ต้องขออภัยที่แจ้งมาผมไม่ค่อยเข้าใจ
snasui wrote:ลองทดสอบวิธีอ้อม ๆ ดูครับ สร้างไฟล์ชื่อ Temp.xls มา 1 ไฟล์ ใน ThisWorkbook ให้นำ Code นี้ไปวาง
โค้ด: เลือกทั้งหมด
Private Sub Workbook_Open()
Workbooks.Open Filename:="D:\Bookx1.xls", _
ignorereadonlyrecommended:=True
Workbooks("Temp.xls").Close False
End Sub
เมื่อเปิดไฟล์ Temp แล้ว Code ในไฟล์ Temp ไปเปิดไฟล์ Bookx1 ที่เก็บใน Path D:
ตอนนี้ไฟล์ที่ชื่อ DumP.xlsm ถูกติดตั้งที่ C:\Program files\DumP
Bookx1.xls อาจารย์หมายถึงไฟล์งานผม ในที่นี้คือ DumP.xlsm หรือเปล่าครับ
ไฟล์ที่ชื่อ Temp.xls ให้สร้างไว้ที่ตำแหน่งไหนครับ

Private Sub Workbook_Open()
Workbooks.Open Filename:="C:\Program files\DumP\DumP.xlsm", _
ignorereadonlyrecommended:=True
Workbooks("Temp.xls").Close False
End Sub

หรือว่าใส่ทุกอย่างเหมือนที่อาจารย์บอกมา ตือผมงงๆเพราะมันเป็นตำแหน่ง :D
รบกวนอธิบายอีกครั้งนะครับ ขออภัยจริงๆครับ

Re: การแปลงข้อมูล

Posted: Fri Sep 16, 2011 9:12 pm
by Bafnet
สวัสดีครับอาจารย์
ผมคิดว่าปัญหาน่ามาจากระบบป้องกันของวินโดว์
เพราะลองย้ายไฟล์ออกจากProgram files มาไว้ใน:C เฉย
เปิดก็เป็นปกติ :cry:
แต่อยากทดลองวิธีที่อาจารย์บอกก่อนครับ
ถ้าสุดท้ายไม่ได้จริงก็คงต้องแก้ Code กันใหม่ทั้งหมดเหนื่อยครับๆ :roll:

Re: การแปลงข้อมูล

Posted: Fri Sep 16, 2011 9:32 pm
by snasui
Bafnet wrote:ตอนนี้ไฟล์ที่ชื่อ DumP.xlsm ถูกติดตั้งที่ C:\Program files\DumP
Bookx1.xls อาจารย์หมายถึงไฟล์งานผม ในที่นี้คือ DumP.xlsm หรือเปล่าครับ
คำตอบคือ ใช่ครับ
Bafnet wrote:ไฟล์ที่ชื่อ Temp.xls ให้สร้างไว้ที่ตำแหน่งไหนครับ
ตำแหน่งไหนก็ได้ครับ เพื่อทดสอบการเรียกใช้ DumP และ Ignore Read only เท่านั้นครับ :P ที่เขียนมาตามด้านล่างน่าจะใช้ได้เลยครับ :ard:

Code: Select all

Private Sub Workbook_Open()
Workbooks.Open Filename:="C:\Program files\DumP\DumP.xlsm", _
ignorereadonlyrecommended:=True
Workbooks("Temp.xls").Close False
End Sub

Re: การแปลงข้อมูล

Posted: Fri Sep 16, 2011 10:35 pm
by Bafnet
สวัสดีครับ
รายงานผลครับ
ยังคงเป็นอาการเดิมครับ :roll:
และได้ทดสอบอีกตัวให้ติดตั้งที่ :C เฉยๆ ตัวนี้ผ่านครับ
คิดว่าน่าจะเป็น security ของวินโดว์ ที่เห็น DumP เป็นProgram เพราะติดตั้งใน :C\Program files
น่าจะตั้งค่าได้แต่ผมทำไม่เป็น

อาจารย์ครับนึกถึงที่อาจารย์เคยสอนเครื่องมือ Find รูปกล้องส่องทางไกล
ถ้าเป็นอย่างนี้ผมคงต้องเปลี่ยน Code ที่อ้างถึง :C\Program files\DumP\...
ถ้าผมเลือกเครื่องมือ Find เลือก Replace / Curent Project
โดยให้หาคำว่า C\Program files
และแทนที่ด้วย C
ทุกๆที่ในงานชิ้นนี้ จะกลายเป็น :C\DumP\ไฟล์ต่างๆ
อย่างมั่นใจได้เลยใช่ไหมครับ

Re: การแปลงข้อมูล

Posted: Fri Sep 16, 2011 11:31 pm
by snasui
Bafnet wrote:ถ้าผมเลือกเครื่องมือ Find เลือก Replace / Curent Project
โดยให้หาคำว่า C\Program files
และแทนที่ด้วย C
ทุกๆที่ในงานชิ้นนี้ จะกลายเป็น :C\DumP\ไฟล์ต่างๆ
อย่างมั่นใจได้เลยใช่ไหมครับ
:D ใช่แล้วครับ