Page 1 of 1
สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Mon Mar 28, 2022 9:50 pm
by thanadul0816
สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการครับ
ตามไฟล์แนบ ผมต้องการดึงรายการจาก Sheet1 มาพิมพ์หน้าละ10รายการ
โดยมีหัวตาราง ผมสามารถกำหนดหัวเรื่องได้แล้วครับ
แต่มีเงื่อนไขที่ด้านล่างของตารางจะต้องเป็นสูตรที่จะต้องสั่งพิมพ์ตามไปด้วยในทุกๆหน้าครับ
มีวิธีการแบบไหน หรือจำเป็นต้องใช้ VBA ไหมครับ
Re: สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Mon Mar 28, 2022 10:26 pm
by snasui

ไม่ทราบมีปัญหาอะไรกับการพิมพ์บรรทัดยอดรวมไปด้วยกรุณาอธิบายเพิ่มเติมครับ
ถ้าจะพิมพ์ส่วนไหนก็แค่เลือกข้อมูล > ไปที่เมนู Page Layout > Print Area > Set Print Area
Excel ไม่มีให้พิมพ์ซ้ำด้านท้ายข้อมูล จะพิมพ์อะไรก็เลือกเอาไว้ก่อน ยกเว้นหัวข้อมูลถึงจะมี Option ให้เลือกได้ว่าให้ซ้ำที่บรรทัดไหน
หากต้องการให้บรรทัดด้านท้ายคงที่อยู่เสมอในทุก ๆ หน้าจะต้องใช้เทคนิคอื่นเข้ามาช่วย เช่นใช้ VBA เก็บภาพด้านท้ายเอาไว้แล้วกำหนดให้ท้ายกระดาษเป็นรูปนั้น เช่นนี้เป็นต้นครับ
Re: สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Mon Mar 28, 2022 11:07 pm
by thanadul0816
snasui wrote: Mon Mar 28, 2022 10:26 pm

ไม่ทราบมีปัญหาอะไรกับการพิมพ์บรรทัดยอดรวมไปด้วยกรุณาอธิบายเพิ่มเติมครับ
ถ้าจะพิมพ์ส่วนไหนก็แค่เลือกข้อมูล > ไปที่เมนู Page Layout > Print Area > Set Print Area
Excel ไม่มีให้พิมพ์ซ้ำด้านท้ายข้อมูล จะพิมพ์อะไรก็เลือกเอาไว้ก่อน ยกเว้นหัวข้อมูลถึงจะมี Option ให้เลือกได้ว่าให้ซ้ำที่บรรทัดไหน
หากต้องการให้บรรทัดด้านท้ายคงที่อยู่เสมอในทุก ๆ หน้าจะต้องใช้เทคนิคอื่นเข้ามาช่วย เช่นใช้ VBA เก็บภาพด้านท้ายเอาไว้แล้วกำหนดให้ท้ายกระดาษเป็นรูปนั้น เช่นนี้เป็นต้นครับ
ผมต้องการพิมพ์หน้าละ10รายการ
และให้ผลรวมออกทุกๆหน้า
ตอนนี้นี้ผมใช่วิธีตามไฟล์แนบ Sheet2 ครับ
ซึ่งต้องกรอกพิมพ์ทีละใบ หากข้อมูลเยอะจะทำงานได้ช้าครับ
**ผมพึ่งนึกได้ตอนนี้กำลังพิมพ์นี้เลย ว่าผมจะใช้แบบเดิมตามSheet2 แต่เพิ่มคำสั่งให้ กรอกเลขให้ที่ Sheet2 Cell:K5
เป็น กรอกเลข111ที่ K5 >>>สั่งพิมพ์ กลับมา กรอกเลข121 ที่ K5>>>สั่งพิมพ์ วนเรียงไปเรื่อยๆแบบนี้ดีไหมครับ
Re: สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Tue Mar 29, 2022 7:41 am
by snasui

เข้าใจว่าต้องการให้สะดวกต่อการแสดงผลข้อมูลทีละ 10 รายการในแต่ละหน้า ตัวอย่างสูตรตามด้านล่างครับ
- ที่ O1 คีย์
=G1+1
Enter > Copy ลงด้านล่าง
- ที่ A5 คีย์
=IFERROR(INDEX(Sheet1!A$2:A$31,10*($G$1-1)+ROWS(A$5:A5)),"")
Enter > Copy ไปด้านขวาและลงด้านล่าง
- ที่ I5 คีย์
=IFERROR(INDEX(Sheet1!A$2:A$31,10*($O$1-1)+ROWS(I$5:I5)),"")
Enter > Copy ไปด้านขวาและลงด้านล่าง
ลองเปลี่ยนค่าที่ G1 เป็นเลขหน้าใด ๆ ที่ต้องการ แล้วดูผลลัพธ์ว่าตรงกับที่ต้องการหรือไม่ครับ
Re: สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Tue Mar 29, 2022 9:04 am
by thanadul0816
snasui wrote: Tue Mar 29, 2022 7:41 am

เข้าใจว่าต้องการให้สะดวกต่อการแสดงผลข้อมูลทีละ 10 รายการในแต่ละหน้า ตัวอย่างสูตรตามด้านล่างครับ
- ที่ O1 คีย์
=G1+1
Enter > Copy ลงด้านล่าง
- ที่ A5 คีย์
=IFERROR(INDEX(Sheet1!A$2:A$31,10*($G$1-1)+ROWS(A$5:A5)),"")
Enter > Copy ไปด้านขวาและลงด้านล่าง
- ที่ I5 คีย์
=IFERROR(INDEX(Sheet1!A$2:A$31,10*($O$1-1)+ROWS(I$5:I5)),"")
Enter > Copy ไปด้านขวาและลงด้านล่าง
ลองเปลี่ยนค่าที่ G1 เป็นเลขหน้าใด ๆ ที่ต้องการ แล้วดูผลลัพธ์ว่าตรงกับที่ต้องการหรือไม่ครับ
ขอบคุณมากครับ ได้ผลใกล้เคียงกับที่ต้องการ พอจะเข้าใจแล้วแล้ว จะนำไปประยุกต์ใช้งานกับ VBA ต่อครับ
Re: สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Tue Mar 29, 2022 10:41 pm
by thanadul0816
thanadul0816 wrote: Tue Mar 29, 2022 9:04 am
snasui wrote: Tue Mar 29, 2022 7:41 am

เข้าใจว่าต้องการให้สะดวกต่อการแสดงผลข้อมูลทีละ 10 รายการในแต่ละหน้า ตัวอย่างสูตรตามด้านล่างครับ
- ที่ O1 คีย์
=G1+1
Enter > Copy ลงด้านล่าง
- ที่ A5 คีย์
=IFERROR(INDEX(Sheet1!A$2:A$31,10*($G$1-1)+ROWS(A$5:A5)),"")
Enter > Copy ไปด้านขวาและลงด้านล่าง
- ที่ I5 คีย์
=IFERROR(INDEX(Sheet1!A$2:A$31,10*($O$1-1)+ROWS(I$5:I5)),"")
Enter > Copy ไปด้านขวาและลงด้านล่าง
ลองเปลี่ยนค่าที่ G1 เป็นเลขหน้าใด ๆ ที่ต้องการ แล้วดูผลลัพธ์ว่าตรงกับที่ต้องการหรือไม่ครับ
ขอบคุณมากครับ ได้ผลใกล้เคียงกับที่ต้องการ พอจะเข้าใจแล้วแล้ว จะนำไปประยุกต์ใช้งานกับ VBA ต่อครับ
ขอถามต่อเนื่องจากงานเดิมครับ
ผมปรับการพิมพ์เป็น 3 รายการต่อ 1 หน้าและใช้ VBA ในการกรอกลำดับและสั่งพิมพ์
สิ่งที่ต้องการคือ ปรับแก้โค้ดเป็นแบบ loop ซ้ำ
โดย VBA ชุดนี้สั่งกรอกข้อมูลแล้วพิมพ์ซ้ำ หน้าละ 3 รายการ ซ้ำไปเรื่อยๆตามข้อมูลของ Sheet DATA
ต้องการจบการ loop ถ้าถึงข้อมูลสุดท้าย ในคอลัมน์ "ชื่อ" ของ Sheet DATA จากไฟล์ ข้อมูลจะจบที่ลำดับที่ 70 ครับ
Re: สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Tue Mar 29, 2022 11:57 pm
by snasui

ตัวอย่างการปรับ Code ครับ
Code: Select all
Sub Macro2()
Dim l As Long
With Worksheets("DATA")
For i = 1 To .Range("a" & .Rows.Count).End(xlUp).Value Step 3
With Worksheets("ãºÊè§")
.Range("b4").Value = i
.Range("a1:f29").PrintOut
End With
Next i
End With
End Sub
Re: สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Wed Mar 30, 2022 9:07 pm
by thanadul0816
snasui wrote: Tue Mar 29, 2022 11:57 pm

ตัวอย่างการปรับ Code ครับ
Code: Select all
Sub Macro2()
Dim l As Long
With Worksheets("DATA")
For i = 1 To .Range("a" & .Rows.Count).End(xlUp).Value Step 3
With Worksheets("ãºÊè§")
.Range("b4").Value = i
.Range("a1:f29").PrintOut
End With
Next i
End With
End Sub
ขอบคุณครับ ได้ผลที่ต้องการครับ
Re: สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Mon Apr 18, 2022 10:31 pm
by thanadul0816
thanadul0816 wrote: Wed Mar 30, 2022 9:07 pm
snasui wrote: Tue Mar 29, 2022 11:57 pm

ตัวอย่างการปรับ Code ครับ
Code: Select all
Sub Macro2()
Dim l As Long
With Worksheets("DATA")
For i = 1 To .Range("a" & .Rows.Count).End(xlUp).Value Step 3
With Worksheets("ãºÊè§")
.Range("b4").Value = i
.Range("a1:f29").PrintOut
End With
Next i
End With
End Sub
ขอบคุณครับ ได้ผลที่ต้องการครับ
ขอถามต่อเนื่องในโพสต์เดิมครับ
จากโค้ดที่ผมใช้ มีปัญหาในการนับคอลัมน์ที่ใส่สูตรไว้แต่ยังไม่มีผลลัพธ์ที่คอลัมน์ J ครับ
ทำให้ไม่สามารถนับจำนวนแถวได้ ขอทราบแนวทางปรับโค้ดครับ
Code: Select all
Sub PrintPreview() '¾ÃÕÇÔÇ¡è͹¾ÔÁ¾ì
'CarryOn = MsgBox("µéͧ¡ÒÃÊÑè§¾ÔÁ¾ì ãªè ËÃ×Í äÁè?", vbYesNo, "Confirm Print")
'If CarryOn = vbYes Then
Dim l As Long
With Worksheets("DATASHIP3")
For i = 1 To .Range("j" & .Rows.Count).End(xlUp).Value Step 3
With Worksheets("Bill")
.Range("D2").Value = i
.Range("a1:i33").PrintPreview
.Application.Dialogs(xlDialogPrint).Show
'Worksheets("㺻Ð˹éÒ¡Åèͧ 50 ¡ÃÑÁ").PrintOut ActivePrinter:=Sheets("SET").Range("B2")
End With
Next i
Sheets("BILL").Select
Range("D2").Select
ActiveCell.FormulaR1C1 = "1"
MsgBox "ÊÑè§¾ÔÁ¾ìàÃÕºÃéÍÂ"
End With
'End If
End Sub
Re: สอบถามการสั่งพิมพ์ข้อมูลจากตารางหน้าละ 10 รายการ
Posted: Tue Apr 19, 2022 7:36 am
by snasui

ปรับตรง
For i = 1... เป็นด้านล่างครับ
For i = 1 To Application.Count(.Range("j4", .Range("j" & .Rows.Count).End(xlUp))) Step 3