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
:D ไม่ทราบมีปัญหาอะไรกับการพิมพ์บรรทัดยอดรวมไปด้วยกรุณาอธิบายเพิ่มเติมครับ

ถ้าจะพิมพ์ส่วนไหนก็แค่เลือกข้อมูล > ไปที่เมนู 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 :D ไม่ทราบมีปัญหาอะไรกับการพิมพ์บรรทัดยอดรวมไปด้วยกรุณาอธิบายเพิ่มเติมครับ

ถ้าจะพิมพ์ส่วนไหนก็แค่เลือกข้อมูล > ไปที่เมนู 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
:D เข้าใจว่าต้องการให้สะดวกต่อการแสดงผลข้อมูลทีละ 10 รายการในแต่ละหน้า ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ O1 คีย์
    =G1+1
    Enter > Copy ลงด้านล่าง
  2. ที่ A5 คีย์
    =IFERROR(INDEX(Sheet1!A$2:A$31,10*($G$1-1)+ROWS(A$5:A5)),"")
    Enter > Copy ไปด้านขวาและลงด้านล่าง
  3. ที่ 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 :D เข้าใจว่าต้องการให้สะดวกต่อการแสดงผลข้อมูลทีละ 10 รายการในแต่ละหน้า ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ O1 คีย์
    =G1+1
    Enter > Copy ลงด้านล่าง
  2. ที่ A5 คีย์
    =IFERROR(INDEX(Sheet1!A$2:A$31,10*($G$1-1)+ROWS(A$5:A5)),"")
    Enter > Copy ไปด้านขวาและลงด้านล่าง
  3. ที่ 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 :D เข้าใจว่าต้องการให้สะดวกต่อการแสดงผลข้อมูลทีละ 10 รายการในแต่ละหน้า ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ O1 คีย์
    =G1+1
    Enter > Copy ลงด้านล่าง
  2. ที่ A5 คีย์
    =IFERROR(INDEX(Sheet1!A$2:A$31,10*($G$1-1)+ROWS(A$5:A5)),"")
    Enter > Copy ไปด้านขวาและลงด้านล่าง
  3. ที่ 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
:D ตัวอย่างการปรับ 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 :D ตัวอย่างการปรับ 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 :D ตัวอย่างการปรับ 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
:D ปรับตรง For i = 1... เป็นด้านล่างครับ

For i = 1 To Application.Count(.Range("j4", .Range("j" & .Rows.Count).End(xlUp))) Step 3