Page 1 of 2

ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Mon Sep 06, 2010 3:41 pm
by gchart
ต้องการให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์
แบบเดียวกับการทำจดหมายเวียน แต่ทำใน excel อย่างไรครับ

(ครั้งที่แล้วผมสร้างตัวเลขจาก excel แล้วเอาแบบฟอร์มนี้ไปใส่ใน word
แล้วทำแบบจดหมายเวียนครับ)

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Mon Sep 06, 2010 5:03 pm
by snasui
:D ลองดูตามไฟล์แนบครับ

เป็นการเขียน Code VBA ให้ Run Number ให้ตามจำนวนที่ต้องการสังพิมพ์ :mrgreen:

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Mon Sep 06, 2010 10:00 pm
by gchart
อาจารย์ครับ ถ้าเราจะเอาโค๊ดนี้ไปใช้ในไฟล์อื่น ได้มั๊ยครับ พอดีผมมีไฟล์ต้นฉบับที่มีการแก้ไขอยู่ปรับเปลี่ยนตำแหน่งของบัตร
ขณะถามหัวหน้าก็ยังแก้ไขเพิ่มเติมข้อความอยู่ และขอถามเพิ่มเติมนะครับ
1.ถ้าให้เลขที่แสดงเป็น 3 หลัก และให้เป็นเลขไทย ต้องแก้ที่รูปแบบเซลล์ให้เป็น t000 ใช่ไหมครับ
2.ค่าที่พิมพ์มันจะออกมาทั้งหน้า A4 หรือเปล่าครับ เพราะเอกสารผมเป็น A4 (สังเกตเห็นอาจารย์เขียนโค๊ดระบุพื้นที่)
3.ถ้าจะสั่งพิมพ์แบบระบุช่วงได้มั๊ยครับ เช่น เลขที่บัตร ๑๐๙-๑๔๕ เนื่องจากบางครั้งกระดาษจะติดหรือเลอะหมึก จึงอาจจะต้องพิมพ์ซ้ำหลายหน้า
ต้องขอโทษอาจารย์นะครับที่ถามไม่จบใน 1 กระทู้
ขอบคุณครับ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Mon Sep 06, 2010 10:17 pm
by snasui
gchart wrote:อาจารย์ครับ ถ้าเราจะเอาโค๊ดนี้ไปใช้ในไฟล์อื่น ได้มั๊ยครับ พอดีผมมีไฟล์ต้นฉบับที่มีการแก้ไขอยู่ปรับเปลี่ยนตำแหน่งของบัตร
ขณะถามหัวหน้าก็ยังแก้ไขเพิ่มเติมข้อความอยู่ และขอถามเพิ่มเติมนะครับ
1.ถ้าให้เลขที่แสดงเป็น 3 หลัก และให้เป็นเลขไทย ต้องแก้ที่รูปแบบเซลล์ให้เป็น t000 ใช่ไหมครับ
2.ค่าที่พิมพ์มันจะออกมาทั้งหน้า A4 หรือเปล่าครับ เพราะเอกสารผมเป็น A4 (สังเกตเห็นอาจารย์เขียนโค๊ดระบุพื้นที่)
3.ถ้าจะสั่งพิมพ์แบบระบุช่วงได้มั๊ยครับ เช่น เลขที่บัตร ๑๐๙-๑๔๕ เนื่องจากบางครั้งกระดาษจะติดหรือเลอะหมึก จึงอาจจะต้องพิมพ์ซ้ำหลายหน้า
ต้องขอโทษอาจารย์นะครับที่ถามไม่จบใน 1 กระทู้
ขอบคุณครับ
:D ข้อ 1 เข้าใจถูกต้องแล้วและผมปรับให้ใน Code ด้านล่างแ้ล้วครับ
ข้อ 2 จะออกมาเฉพาะพื้นที่ที่เรากำหนดครับ ลองพิมพ์สัก 1 หน้าดูก่อนได้ครับ
ข้อ 3 ถ้าจะทำเช่นนั้นต้องเปลี่ยน Code ใหม่ครับ

ลอง Copy Code ด้านล่างไปแทน Code เดิมครับ

Code: Select all

Option Explicit
Sub PrintOutput()
Dim i As Integer
Dim a As Integer
Dim v As Integer
On Error Resume Next
v = InputBox( _
        Title:="ระบุฉบับที่เริ่ม", _
        prompt:="กรอกหมายเลขฉบับเริ่มพิมพ์")
a = InputBox( _
        Title:="ระบุฉบับสิ้นสุด", _
        prompt:="กรอกหมายเลขฉบับสุดท้ายที่ต้องการพิมพ์")
If Err = 13 Then
    MsgBox "โปรดกรอกข้อมูลทั้งฉบับที่เริ่มและฉบับที่สิ้นสุด"
    Exit Sub
End If
For i = v To a
    Range("I3") = i
    Range("I3").NumberFormat = "t000"
    Range("B2:J12").PrintOut
Next i
End Sub
:mrgreen:

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Sat Jun 18, 2011 12:57 pm
by godman
พอดีผมนึกได้ว่าที่นี้เคยมีคนถามเรื่องการรันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ แต่ของที่ผมจะทำ จะมี 4 บัตรใน A4 1 หน้าครับ เพื่อประหยัดกระดาษ ถ้าใช้โค้ดมาโครเดิม ผมต้องปรับตัวใหนบ้างครับ
ความต้องการของผมคือ ให้มันพิมพ์ตามชุดที่เรากำหนด ชุดนึงมี 4 และให้หมายเลขมัน run ถูกต้องด้วยครับ เช่นเราสั่งชุด 3 ก็จะหมายถึง0009-0012 คือหมายเลขบัตร

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Sat Jun 18, 2011 12:59 pm
by godman
ขอโทษครับนี่คือไฟล์แนบครับ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Sat Jun 18, 2011 11:12 pm
by snasui
:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub PRIINTNUMBERELECTI()
Dim i As Integer
Dim a As Integer
Range("B4,E4,H4,K4").NumberFormat = "0000"
On Error Resume Next
a = InputBox( _
        Title:="ระบุำจำนวนฉบับ", _
        prompt:="Pls select number of copy such as 1,5,9,13,18")
If Err = 13 Then
    MsgBox "Please enter you number of copy"
    Exit Sub
End If
For i = 1 To a * 4 Step 4
    Range("B4") = i
    Range("E4") = i + 1
    Range("H4") = i + 2
    Range("K4") = i + 3
    Range("A2:L15").PrintOut
Next i
End Sub

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Sun Jun 19, 2011 9:04 am
by godman
ขอบคุณครับ สำหรับความช่วยเหลือ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Wed Jul 16, 2014 8:20 am
by katihp
สวัสดีครับ
ขออนุญาติขุดกระทู้เก่าหน่อยครับ
พอดีว่าตรงกับความต้องการพอดีครับ แต่ติดปัญหาสงสัยครับ

อ้างอิง
Range("I3") = i
Range("I3").NumberFormat = "t000"
Range("B2:J12").PrintOut

ตรง "t000" ถ้าผมเปลี่ยนเป็น "S000" มันไม่ทำงานครับ
คือถ้ามี S มันไม่ทำงาน ไม่ทราบว่าเกิดจากอะไรและจะสามารถแก้ได้อย่างไรบ้างครับ

ขอบพระคุณครับ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Wed Jul 16, 2014 2:23 pm
by snasui
:D "t000" เป็นการจัด Format ให้แสดงตัวเลขเป็นตัวเลขไทย ไม่ใช่ตัวเลขอารบิค ส่วน "S000" ที่ต้องการจัด Format ไม่ทราบว่าต้องการให้แสดงเป็นค่าอะไรครับ :?:

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Wed Jul 16, 2014 3:18 pm
by katihp
สวัสดีครับ

คือว่าต้องการ รันหน้าเหมือนกันครับ
เช่น SPK001 ,SPK002 ...003
หรือ ตัวย่อ อื่นๆครับ XXX001 ,XXX002

ประมาณนี้ครับ
ขอบพระคุณครับ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Wed Jul 16, 2014 3:28 pm
by snasui
:D แนบไฟล์ตัวอย่างมาดูกันครับว่าต้องการให้เซลล์ใดเป็นค่าใด ที่ได้ลองปรับแล้วเป็นอย่างไร จะได้ช่วยตอบต่อไปจากนั้นครับ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Wed Jul 16, 2014 3:45 pm
by katihp
สวัสดีครับ

เอกสารแนบมาแล้วครับ ผม copy มาทั้งดุ้นเลยนะครับ :mrgreen:

ตัวที่ไม่ออก CAM,SPK,SHI,SIL ครับ

รบกวนแนะนำด้วยครับ

ขอบพระคุณครับ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Wed Jul 16, 2014 4:27 pm
by snasui
:D ถ้า Copy มาทั้งหมดผมยังไม่ตอบครับ การใช้ VBA จะต้องปรับ Code นั้นให้ตรงกับสิ่งที่ต้องการ่ก่อนแล้วแจ้งมาว่าติดขัดที่ Procedure ใด บรรทัดใด อ่านกฎข้อ 5 ด้านบนประกอบครับ :roll:

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Wed Jul 16, 2014 4:37 pm
by katihp
สวัสดีครับ

ปรับให้ตรงตามต้องการแล้วครับ แต่ไม่ออกอย่างที่ต้องการครับ
รบกวนลอง โหลดดูให้ทีครับ

ขอบพระคุณครับ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Wed Jul 16, 2014 5:07 pm
by snasui
:D ตัวอย่าง Code ให้ขึ้นต้นด้วย CAM ตามด้านล่างครับ

Code: Select all

'Other code
For i = v To a
     Range("H1") = "CAM" & Application.Text(i, "000")
     Range("A1:I19").PrintOut
Next i
'Ohter code

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Thu Jul 17, 2014 10:18 am
by katihp
สวัสดีครับ

"CAM" & Application.Text(i, "000") สามารถตอบโจทย์เลยครับ

ขอบพระคุณครับ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Mon Feb 10, 2020 9:21 am
by Aseerom
รบกวนสอบถามครับเลขที่รันตอนนี้ผมขึ้นต้นที่53 ไม่ใช่1ผมต้องเขียนสูตรแบบไหนครับ พึ่ง

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Mon Feb 10, 2020 9:28 am
by snasui
:D เปลี่ยน For i = v To a เป็น For i = 53 To a

ควรจะบอกว่าปัจจุบันทำอะไร ไปถึงไหน อย่างไร จะได้ตอบต่อไปจากนั้นครับ

Re: ให้รันตัวเลขอัตโนมัติเมื่อสั่งพิมพ์ครับ

Posted: Mon Feb 10, 2020 10:40 am
by Aseerom
ขอโทษครับอาจารย์
พอเปลี่ยน เป็น For i = 53 ปริ้นไม่ออกครับอาจารย์