Xin hướng dẫn: Cách tạo vùng in dựa trên dữ liệu của listbox bằng VBA!!!

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

LongHoang123

Thành viên mới
Tham gia
14/2/22
Bài viết
2
Được thích
0
Chào các bác! Em hiện đang có 1 vấn đề như sau ạ! Em có 1 file excel và em đang muốn tạo 1 listbox với các giá trị từ 1 đến 5! Sao đó mỗi khi lựa chọn giá trị từ listbox đó thì sẽ tự động tạo vùng in (Print-area) tương ứng như sau:
Số 1 vùng in sẽ là $A$2:$R$187
Số 2 vùng in sẽ là $S$2:$AJ$187
Số 3 vùng in sẽ là $AK$2:$BB$187
Số 4 vùng in sẽ là $BC$2:$BT$187
Số 5 vùng in sẽ là $BU$2:$CL$187
Em mà người mới nên có gì chưa đúng mong các bác bỏ qua giúp ạ! Em xin chân thành cảm ơn ạ!
 
Chào các bác! Em hiện đang có 1 vấn đề như sau ạ! Em có 1 file excel và em đang muốn tạo 1 listbox với các giá trị từ 1 đến 5! Sao đó mỗi khi lựa chọn giá trị từ listbox đó thì sẽ tự động tạo vùng in (Print-area) tương ứng như sau:
Số 1 vùng in sẽ là $A$2:$R$187
Số 2 vùng in sẽ là $S$2:$AJ$187
Số 3 vùng in sẽ là $AK$2:$BB$187
Số 4 vùng in sẽ là $BC$2:$BT$187
Số 5 vùng in sẽ là $BU$2:$CL$187
Em mà người mới nên có gì chưa đúng mong các bác bỏ qua giúp ạ! Em xin chân thành cảm ơn ạ!
Tạo UserForm và ListBox, chèn code sau:
Sửa lại code để thêm các vùng in khác.
Mã:
Private Sub UserForm_Initialize()
    With ListBox1
        .AddItem "1"
        .AddItem "2"
    End With
End Sub

Private Sub ListBox1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    Select Case ListBox1.Value
        Case "1"
            ThisWorkbook.Sheets(1).PageSetup.PrintArea = "$A$2:$R$187"
        Case "2"
            ThisWorkbook.Sheets(1).PageSetup.PrintArea = "$S$2:$AJ$187"
        Case Else
            MsgBox "Chon vùng in", vbCritical
            Exit Sub
    End Select
    MsgBox "Vùng in: " & ThisWorkbook.Sheets(1).PageSetup.PrintArea, vbInformation
End Sub
 
Upvote 0
Dạ em cảm ơn bác rất nhiều ạ! Em đã làm được rồi ạ! :D
Bài đã được tự động gộp:

Tạo UserForm và ListBox, chèn code sau:
Sửa lại code để thêm các vùng in khác.
Mã:
Private Sub UserForm_Initialize()
    With ListBox1
        .AddItem "1"
        .AddItem "2"
    End With
End Sub

Private Sub ListBox1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    Select Case ListBox1.Value
        Case "1"
            ThisWorkbook.Sheets(1).PageSetup.PrintArea = "$A$2:$R$187"
        Case "2"
            ThisWorkbook.Sheets(1).PageSetup.PrintArea = "$S$2:$AJ$187"
        Case Else
            MsgBox "Chon vùng in", vbCritical
            Exit Sub
    End Select
    MsgBox "Vùng in: " & ThisWorkbook.Sheets(1).PageSetup.PrintArea, vbInformation
End Sub
Bác cho em hỏi thêm xíu là: Giờ mỗi lần em phải tắt cái UserForm và ListBox đi mới in được á! Bác có cách nào kiểu không cần tắt đi mà vẫn ra lệnh in được không ha bác? Tại em thấy cái UserForm và ListBox em tạo khi mở nó lên là nó không thao tác được gì khác ngoài cái UserForm và ListBox đó á bác!
Em cảm ơn ạ!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom