Gộp code co giãn, ẩn dòng tự động vào Form khi in

Liên hệ QC

vc_đi chơi

Thành viên hoạt động
Tham gia
21/9/19
Bài viết
159
Được thích
32
Em có đoạn code co giãn và ẩn dòng tự động có tác dụng khi in sheet (Bang) và sheet (layDL)
Em có sử dụng Form để in.
Nhờ anh chị giúp em gộp code tự động co giãn và ẩn dòng vào form để khi in bằng Form thì cũng tự động ẩn và co dãn dòng luôn.
Em xin cảm ơn!

444444.png
 

File đính kèm

  • File1.xlsm
    46.4 KB · Đọc: 12
Mã:
Private Sub OkInBB_All_Click()
    Dim inStart As Long, inFinish As Long
    Dim I As Long
    Dim CotD As Range
    Dim ws As Worksheet    
    On Error GoTo Thoat
    Set ws = Sheet4
    Ws.DisplayPageBreaks = False
    inStart = TextBox1.Value 
    inFinish = TextBox2.Value 
    For I = inStart To inFinish
        With ws
            ActiveSheet.DisplayPageBreaks = False
            .Range("H2").Value = I
            Call CogianDong
            For Each CotD In Range("D11:D15")
                If CotD.Value = "0" Then
                    CotD.EntireRow.Hidden = True
                End If
            Next CotD
            .PrintOut 'Vùng in Set
        End With
    Next I
Thoat:
    Unload Me
    ActiveSheet.DisplayPageBreaks = False
End Sub[code/]
 
Mã:
Private Sub OkInBB_All_Click()
    Dim inStart As Long, inFinish As Long
    Dim I As Long
    Dim CotD As Range
    Dim ws As Worksheet   
    On Error GoTo Thoat
    Set ws = Sheet4
    Ws.DisplayPageBreaks = False
    inStart = TextBox1.Value
    inFinish = TextBox2.Value
    For I = inStart To inFinish
        With ws
            ActiveSheet.DisplayPageBreaks = False
            .Range("H2").Value = I
            Call CogianDong
            For Each CotD In Range("D11:D15")
                If CotD.Value = "0" Then
                    CotD.EntireRow.Hidden = True
                End If
            Next CotD
            .PrintOut 'Vùng in Set
        End With
    Next I
Thoat:
    Unload Me
    ActiveSheet.DisplayPageBreaks = False
End Sub[code/]
Cám ơn anh! anh cho em hỏi copt đoạn code anh giúp vào code của Form đúng không ạ?
 
Em đã copy đoạn code anh giúp vào code của Form :
Mã:
Private Sub OkInBB_All_Click()
    Dim inStart As Long, inFinish As Long
    Dim I As Long
    Dim CotD As Range
    Dim ws As Worksheet
    On Error GoTo Thoat
    Set ws = Sheet4
    ws.DisplayPageBreaks = False
    inStart = TextBox1.Value
    inFinish = TextBox2.Value
    For I = inStart To inFinish
        With ws
            ActiveSheet.DisplayPageBreaks = False
            .Range("H2").Value = I
            Call CogianDong
            For Each CotD In Range("D11:D15")
                If CotD.Value = "0" Then
                    CotD.EntireRow.Hidden = True
                End If
            Next CotD
            .PrintOut 'Vùng in Set
        End With
    Next I
Thoat:
    Unload Me
    ActiveSheet.DisplayPageBreaks = False
End Sub

'***********************************************************************************************************************
'LUA CHON MÁY IN
Private Sub Printer_Properties_Click()
    Call Shell("rundll32 printui.dll,PrintUIEntry /p /n """ & ComboBox1.Value & """", vbNormalFocus)
End Sub

Sub List_Printer()
    Dim aPrinters As Object
    Dim I As Long, N As Long
    With CreateObject("WScript.Network")
        Set aPrinters = .EnumPrinterConnections
        For I = 1 To aPrinters.Count Step 2
            ComboBox1.AddItem aPrinters.Item(I)
        Next
    End With
End Sub

Sub Get_Default_Printer()
    Dim WSHshell As Object, RegKey As String, RegKeySplit As Variant
    Dim RegDefault As String, MyPrinter As String
    RegKey = _
            "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device"
    Set WSHshell = CreateObject("WScript.Shell")
    RegDefault = WSHshell.RegRead(RegKey)
    Set WSHshell = Nothing
    RegKeySplit = Split(RegDefault, ",")
    MyPrinter = RegKeySplit(0)
    ComboBox1.Text = MyPrinter
End Sub

Private Sub UserForm_Initialize()
    Call List_Printer
    Call Get_Default_Printer
End Sub
'***********************************************************************************************************************
Nhưng khi in ra vẫn chưa ẩn dòng trống và tự động co dãn giống như khi Spin dữ liệu từ 1 đến 3
Anh xem giúp em ạ! kết quả em in ra, dòng trống vẫn hiện chưa bị ẩn.
Nếu có thể nhờ anh sửa luôn trên file em đính kèm mới ạ!
Cảm ơn anh!
2222.png333333.png
 

File đính kèm

  • File anh giup.xlsm
    48.5 KB · Đọc: 10
Em đã copy đoạn code anh giúp vào code của Form :
Mã:
Private Sub OkInBB_All_Click()
    Dim inStart As Long, inFinish As Long
    Dim I As Long
    Dim CotD As Range
    Dim ws As Worksheet
    On Error GoTo Thoat
    Set ws = Sheet4
    ws.DisplayPageBreaks = False
    inStart = TextBox1.Value
    inFinish = TextBox2.Value
    For I = inStart To inFinish
        With ws
            ActiveSheet.DisplayPageBreaks = False
            .Range("H2").Value = I
            Call CogianDong
            For Each CotD In Range("D11:D15")
                If CotD.Value = "0" Then
                    CotD.EntireRow.Hidden = True
                End If
            Next CotD
            .PrintOut 'Vùng in Set
        End With
    Next I
Thoat:
    Unload Me
    ActiveSheet.DisplayPageBreaks = False
End Sub

'***********************************************************************************************************************
'LUA CHON MÁY IN
Private Sub Printer_Properties_Click()
    Call Shell("rundll32 printui.dll,PrintUIEntry /p /n """ & ComboBox1.Value & """", vbNormalFocus)
End Sub

Sub List_Printer()
    Dim aPrinters As Object
    Dim I As Long, N As Long
    With CreateObject("WScript.Network")
        Set aPrinters = .EnumPrinterConnections
        For I = 1 To aPrinters.Count Step 2
            ComboBox1.AddItem aPrinters.Item(I)
        Next
    End With
End Sub

Sub Get_Default_Printer()
    Dim WSHshell As Object, RegKey As String, RegKeySplit As Variant
    Dim RegDefault As String, MyPrinter As String
    RegKey = _
            "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device"
    Set WSHshell = CreateObject("WScript.Shell")
    RegDefault = WSHshell.RegRead(RegKey)
    Set WSHshell = Nothing
    RegKeySplit = Split(RegDefault, ",")
    MyPrinter = RegKeySplit(0)
    ComboBox1.Text = MyPrinter
End Sub

Private Sub UserForm_Initialize()
    Call List_Printer
    Call Get_Default_Printer
End Sub
'***********************************************************************************************************************
Nhưng khi in ra vẫn chưa ẩn dòng trống và tự động co dãn giống như khi Spin dữ liệu từ 1 đến 3
Anh xem giúp em ạ! kết quả em in ra, dòng trống vẫn hiện chưa bị ẩn.
Nếu có thể nhờ anh sửa luôn trên file em đính kèm mới ạ!
Cảm ơn anh!
View attachment 229649View attachment 229652
Code chỉ ẩn trong vùng D11:D15 mà File của bạn là D8:D12 sao nó chịu
 
Code chỉ ẩn trong vùng D11:D15 mà File của bạn là D8:D12 sao nó chịu
Cảm ơn bạn!
Mã:
Private Sub OkInBB_All_Click()
    Dim inStart As Long, inFinish As Long
    Dim I As Long
    Dim CotD As Range
    Dim ws As Worksheet   
    On Error GoTo Thoat
    Set ws = Sheet4
    Ws.DisplayPageBreaks = False
    inStart = TextBox1.Value
    inFinish = TextBox2.Value
    For I = inStart To inFinish
        With ws
            ActiveSheet.DisplayPageBreaks = False
            .Range("H2").Value = I
            Call CogianDong
            For Each CotD In Range("D11:D15")
                If CotD.Value = "0" Then
                    CotD.EntireRow.Hidden = True
                End If
            Next CotD
            .PrintOut 'Vùng in Set
        End With
    Next I
Thoat:
    Unload Me
    ActiveSheet.DisplayPageBreaks = False
End Sub[code/]
Anh ơi khi dùng code của anh giúp thì những đoạn code ở sheet (Bang) và sheet (layDL) và code ở module "M_Cogian" có cần dùng đến nữa không ạ?
 
Code chỉ ẩn trong vùng D11:D15 mà File của bạn là D8:D12 sao nó chịu
@Nhất Chi Lan cho em hỏi:
Sau khi đã copy code của anh XuanThanh vào Form.
Nếu mà bỏ code ở Module "M_Cogian" hoặc code trong sheet "layDL" đi thì liệu khi in bằng Form có tác dụng co giãn vàn ẩn dòng trống được không? hay là phải đủ cả code trong Module "M_Cogian" và code trong sheet "layDL" thì mới có tác dụng.
Nhờ anh giải thích giúp.
Cảm ơn anh!
 
Web KT
Back
Top Bottom