Page 1 of 1
Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Thu Jul 05, 2012 12:00 pm
by sup
Code: Select all
Private Sub CommandButton3_Click()
Application.ActivePrinter = "\\qa02\Brother HL-2140 series on Ne04:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, _
ActivePrinter:="\\qa02\Brother HL-2140 series on Ne04:", Collate:=True
End Sub
เรียนอาจารย์และท่านผู้รู้ทุกท่านครับ
ผมได้ Code จาก macro สั่งปริ้นฟอร์มออกมาซึ่งจะปริ้นได้เพียง 1 แผ่นเท่านั้น(ตามด้านบน) แล้วผมเอา Code นี้มาใส่ใน commandbutton ใช้คลิ๊กสั่งปริ้นท์ และหากต้องการที่จะปริ้นมากกว่า 1 แผ่น โดยทำ Textbox วางใน Sheet "Print Form" ให้ใส่จำนวนแผ่นที่ต้องการแล้วส่งข้อมูลนี้ไปยัง Code ไม่ทราบว่าจะปรับแก้ไข Code ตรงไหนครับ ผมรบกวนหน่อยครับ โดยส่วนตัวเข้าใจว่าจะต้องเปลี่ยนตรง "Copies:1" แต่ลองแล้วไม่เป็นผลครับ
ขอบคุณทุกท่านล่วงหน้าครับ
Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Thu Jul 05, 2012 2:50 pm
by bank9597

ไม่ถนัดเรื่อง VBA เลยครับ เลยต้องรอให้ท่านอื่นๆช่วยเข้าดูให้อีกทีครับ
Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Thu Jul 05, 2012 3:00 pm
by sup
ขอบคุณครับคุณ bank9597 ไม่เป็นไรครับ สิ่งที่คุณทำอยู่ดีอยู่แล้วครับ ยังมีอีกหลายปัญหาที่ผมต้องเอามาถามครับ ขอบคุณมากๆในน้ำใจที่ได้รับครับ ผมรู้กเยอะขึ้นกว่าเมื่อก่อนก็จากอาจารย์และหลายๆท่านครับ และเจริญรอยตามครับ มอบความรู้เล็กๆน้อยๆที่พอจะรู้บ้างให้คนน้องๆ ในที่ทำงาน มุมเล็ก มุมหนึ่งของคนไทยที่ยังมีน้ำใจให้กันครับ
Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Thu Jul 05, 2012 3:30 pm
by yoguzaa
เห็นด้วยกับ ความเห็นของเจ้าของกระทู้ ครับ
คุณ แบงค์ เหมือนเป็น ต้นแบบที่ดีในการศึกษาหาความรู้ครับ
ลองหาดูจากกระทู้แรกๆของคุณแบงค์
จนถึงเดี๋ยวนี้ พัฒนาขึ้นจนช่วยตอบคำถามแทน ท่านอาจารย์ได้ ในหลายๆคำถาม
สังเกตที่ โปรไฟล์ ทางด้านซ้ายของโพสที่คุณแบงค์ตอบสิ
เดี๋ยวนี้ได้ ระดับ กูรู ไปแล้ว
สักวัน ผมคงจะได้เป็นมั่ง
Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Thu Jul 05, 2012 4:42 pm
by bank9597
เห็นด้วยกับ ความเห็นของเจ้าของกระทู้ ครับ
คุณ แบงค์ เหมือนเป็น ต้นแบบที่ดีในการศึกษาหาความรู้ครับ
ลองหาดูจากกระทู้แรกๆของคุณแบงค์
จนถึงเดี๋ยวนี้ พัฒนาขึ้นจนช่วยตอบคำถามแทน ท่านอาจารย์ได้ ในหลายๆคำถาม
สังเกตที่ โปรไฟล์ ทางด้านซ้ายของโพสที่คุณแบงค์ตอบสิ
เดี๋ยวนี้ได้ ระดับ กูรู ไปแล้ว
สักวัน ผมคงจะได้เป็นมั่ง
ผมลาออกจากการเป็นกูรูวันละหลายสิบรอบครับ เพราะทำหน้าที่ไม่ดีพอ
ทุกคนสามารถเก่งได้ครับ ผมแค่ทำงานที่ต้องใช้เอ็กเซลล์ เลยต้องคลุกคลีมากหน่อย แต่อย่างไรก็ตาม ผมแค่ต้องการช่วยเหลือเพื่อนสมาชิกทุกคนเท่าที่ช่วยได้ ถึงไม่ไ้ด้ก็จะเข้ามาแจ้งเพื่อไม่อยากให้เข้าใจว่าไม่มีใครสนใจครับ
สุดท้ายคือ ผมทำไปไม่ได้ต้องการอะไรทั้งสิ้นครับ แค่คำขอบคุณก็ประทับใจมากแล้วครับ อีกทั้งผมก็ยังไม่รู้อะไรมากยังต้องศึกษาอีกมากครับ เจ็บใจอยู่เหมือนกันที่ช่วยตอบเรื่อง VBA ไม่ได้
ขอบคุณผู้ถามทั้ง 2 ท่านครับ สำหรับคำชมที่ให้มา และหากมีอะไรผิดพลาด ก็สามารถบอกกล่าวผมได้เช่นกันครับ

Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Thu Jul 05, 2012 9:12 pm
by snasui
sup wrote:โดยส่วนตัวเข้าใจว่าจะต้องเปลี่ยนตรง "Copies:1" แต่ลองแล้วไม่เป็นผลครับ

Code ที่ลองแล้วคือ Code ใดช่วยโพสต์มาด้วยครับ
Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Sat Jul 07, 2012 11:54 am
by sup
Code: Select all
Private Sub CommandButton3_Click()
Dim x As Integer
x = Worksheets("Form Print").TextBox1.Value
Application.ActivePrinter = "\\qa02\Brother HL-2140 series on Ne04:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=x, _
ActivePrinter:="\\qa02\Brother HL-2140 series on Ne04:", Collate:=True
End Sub
ขอโทษครับอาจารย์เข้ามาดูความคืบหน้าช้าไป พอดีงานเร่งมาครับเลยต้องเอางานไว้ก่อนครับ เดี๋ยวตกงานครับ
Code ตามด้านบนครับ ผมลองให้ x = 1 ผลสามารถ Runได้ครับ แต่พอเอาค่าจาก Textbox1 มาใส่ไม่ได้ครับ ไม่แน่ใจว่าผมเขียน Codeผิดตรงไหนอย่างไรครับ ยังงูๆปลาอยู่มากครับ รบกวนช่วยดูให้หน่อยครับ
ขอบคุณล่วงหน้าครับ
Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Sat Jul 07, 2012 12:25 pm
by snasui

ลองปรับเป็นตามด้านล่างครับ
Code: Select all
Private Sub CommandButton3_Click()
Dim x As Integer
x = CInt(Worksheets("Form Print").TextBox1.Value)
Application.ActivePrinter = "\\qa02\Brother HL-2140 series on Ne04:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=x, _
ActivePrinter:="\\qa02\Brother HL-2140 series on Ne04:", Collate:=True
End Sub
Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Sat Jul 07, 2012 2:03 pm
by sup
ขอบคุณครับอาจารย์ ใช้การได้ดังใจแล้วครับ ยังมีเรื่องติดใจนิดหนึ่งครับ ตรง CInt ช่วยอธิบายให้หน่อยครับ คืออะไร หลักการใช้อย่างไรครับ ขอบคุณมากๆครับ อ้อผมเพิ่ม Code Textbox1.Value="" ให้เคลียร์ค่าใน Textbox1 เข้าไปด้วยเพื่อเคลียร์เลขออกเมื่อคำสั่งสั่งจบครับ
Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Sat Jul 07, 2012 3:28 pm
by snasui

Cint เป็นฟังก์ชั่นสำหรับแปลงตัวแปร x ให้กลับไปเป็น Interger ครับ
จาก Code เดิมได้ประกาศตัวแปร x เป็น Interger แต่เรามีการ Assign ค่าตัวแปร x ให้มีค่าเท่ากับค่าใน TextBox1 ซึ่งค่าเป็น
Text จึงต้องแปลง Text ให้กลับไปเป็น Interger ก่อนที่จะ Assign ค่าให้กับตัวแปร x เพื่อที่จะนำไปใช้ต่อไป
สำหรับฟังก์ชั่นการแปลงตัวแปร ดูเพิ่มเติมได้ที่นี่ครับ
http://msdn.microsoft.com/en-us/library/gg278896.aspx
Re: Code VBA สั่งจำนวนแผ่นที่จะปริ้นท์
Posted: Sat Jul 07, 2012 5:21 pm
by sup
ขอบคุณมากครับอาจารย์
หากมีข้อสงสัยตรงไหนผมจะมาถามต่อครับ