Page 3 of 3

Re: เพิ่มข้อมูลใหม่

Posted: Mon Jan 19, 2015 12:02 pm
by san02551
พอสั่งพิมพ์ ข้อมูล ที่ Sheets print ครับ ข้อมูลจะมี 2 หน้า ครับ พอสั่งพิมพ์แล้วจะมีหน้าว่าง (หน้า 3-4 ) ขึ้นมาครับ ผมต้องการสั่งพิมพ์เฉพาะที่มีข้อมูลครับ

Code: Select all

Private Sub CommandButton1_Click()
Dim rAll As Range, r As Range
Application.EnableEvents = False
With Worksheets("print")
Set rAll = .Range("b1", .Range("b" & Rows.Count).End(xlUp))
End With
For Each r In rAll
    If r = "" Then
        r.EntireRow.Hidden = True
    End If
Next r
With Worksheets("print")
    rAll.Resize(, 15).PrintOut
    .UsedRange.EntireRow.Hidden = False
End With
Application.EnableEvents = True
End Sub

Re: เพิ่มข้อมูลใหม่

Posted: Mon Jan 19, 2015 6:35 pm
by snasui
:D ตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Private Sub CommandButton1_Click()
    Dim rAll As Range, r As Range
    Application.EnableEvents = False
    With Worksheets("print")
        Set rAll = .Range("b1", .Range("b" & Rows.Count).End(xlUp))
    End With
    For Each r In rAll
        If r = "" Then
            r.EntireRow.Hidden = True
        End If
    Next r
    With Worksheets("print")
        .PageSetup.PrintArea = .Range("b6").CurrentRegion.Address
    '    rAll.Resize(, 15).PrintOut
        .PrintOut
        .UsedRange.EntireRow.Hidden = False
    End With
    Application.EnableEvents = True
End Sub

Re: เพิ่มข้อมูลใหม่

Posted: Wed Jan 21, 2015 6:43 am
by san02551
ผมต้องการพิมพ์เอกสารพร้อมกัน 2 Sheet คือ Sheet data และ Sheet print ครับ แต่ก็สั่งพิมพ์ได้ ครับ ลองปรับให้ผมหน่อยครับ

Code: Select all

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Sheets("data").Visible = True
Sheets("data").Select
ActiveSheet.PageSetup.PrintArea = "$b$5:$h$32"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
Sheets("data").Visible = True
Application.ScreenUpdating = True
'Êèǹ·ÕèÊÑ駾ÔÁ¾ì Sheet print
Dim rAll As Range, r As Range
    Application.EnableEvents = False
    With Worksheets("print")
        Set rAll = .Range("b1", .Range("b" & Rows.Count).End(xlUp))
    End With
    For Each r In rAll
        If r = "" Then
            r.EntireRow.Hidden = True
        End If
    Next r
    With Worksheets("print")
        .PageSetup.PrintArea = .Range("b3").CurrentRegion.Address
    '    rAll.Resize(, 15).PrintOut
        .PrintOut
        .UsedRange.EntireRow.Hidden = False
    End With
    Application.EnableEvents = True
End Sub

Re: เพิ่มข้อมูลใหม่

Posted: Wed Jan 21, 2015 10:12 pm
by snasui
:D ถ้า Code ไม่มีปัญหาใดก็ไม่จำเป็นต้องปรับ เอาไว้มีปัญหาหรือคิดได้ว่าปัญหาคืออะไรค่อยมาถามกันอีกทีครับ

Re: เพิ่มข้อมูลใหม่

Posted: Thu Jan 22, 2015 10:43 am
by san02551
ปัญหาตอนนี้ คือ เวลาสั่งพิมพ์ จะใช้เวลาอ่านข้อมูลนานครับ เวลานำไปใช้งานจริงครับ
ข้อมูลที่ Sheet data มีประมาณ 40 แถว ครับ ข้อมูลที่ Sheet print มีประมาณ 130 แถว ครับ ตามไฟล์ที่แนบมาข้างต้น นั้น ก็ทำงานได้ครับ

Re: เพิ่มข้อมูลใหม่

Posted: Thu Jan 22, 2015 8:33 pm
by snasui
:D ข้อมูลเท่าที่บอกมาถือว่าเล็กน้อยมากและ Code นั้นไม่มีข้อบ่งชี้ใดว่าทำงานนาน

ลองนำไฟล์จริงมาเปลี่ยนข้อความสำคัญไปเป็นอย่างอื่นเพื่อให้เป็นไฟล์ตัวอย่างแล้วแนบมาดูกันครับ