Tạo nút Print trong VBA làm sao đây??

Liên hệ QC

rockydatalone

Thành viên mới
Tham gia
3/4/07
Bài viết
48
Được thích
9
Mình đang thiết kế 1 form nhập liệu , đồng thời sẽ có thêm nút in , nếu mình muốn In ra, các bác cho mình hỏi về Code hoặc phương thức để mình có thể In ra chỉ bằng nút lệnh , chứ không phải nhấn Ctr + P có sẵn trong Exccel. Mong các bác chỉ giúp. Thank nhìu nhìu.
 
Mình đang thiết kế 1 form nhập liệu , đồng thời sẽ có thêm nút in , nếu mình muốn In ra, các bác cho mình hỏi về Code hoặc phương thức để mình có thể In ra chỉ bằng nút lệnh , chứ không phải nhấn Ctr + P có sẵn trong Exccel. Mong các bác chỉ giúp. Thank nhìu nhìu.

Bạn dùng Macro record lại thao tác in ngoài excel. Sau đó copy đoạn code đó và nút lệnh xử lý lúc commandbutton_Click là xong! Hãy thử nhé bạn! Cách này đơn giản mà hiệu quả nhất đấy!
 
Lần chỉnh sửa cuối:
Upvote 0
ố ồ, làm bằng cách này àh, chứ không có cách nào khác hả bác ca_dafi.
Để mình làm thử xem code nó thế nèo nha.
Thank bác nhìu
 
Upvote 0
ố ồ, làm bằng cách này àh, chứ không có cách nào khác hả bác ca_dafi.
Để mình làm thử xem code nó thế nèo nha.
Thank bác nhìu

Bạn hãy thử hình dung khi chúng ta học tiếng Anh:
- Nếu thầy giáo dạy ta Banana là trái chuối, ta cứ học thuộc lòng là Banana là trái chuối, Banana là trái chuối, Banana là trái chuối........
- Nếu thầy giáo đưa ra trái chuối trước mặt bạn và nói this is a Banana.

Vậy theo bạn cách nào học nhanh hơn!
 
Upvote 0
Mình đang thiết kế 1 form nhập liệu , đồng thời sẽ có thêm nút in , nếu mình muốn In ra, các bác cho mình hỏi về Code hoặc phương thức để mình có thể In ra chỉ bằng nút lệnh , chứ không phải nhấn Ctr + P có sẵn trong Exccel. Mong các bác chỉ giúp. Thank nhìu nhìu.
đây là code in một trang hiện hành
PHP:
Sub intrangbangdiemchuan_Click()
On Error GoTo baoloi:
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
        :=True
baoloi:
End
End Sub
cồn bên dưới là file in các trang tự lựa chọn nhé! chỉ là file tham khảo thôi
 

File đính kèm

  • incactrang.rar
    2.1 KB · Đọc: 841
Upvote 0
bác Ca_dafi nói đúng, mình nên chọn cách 2 (vì thầy đưa ra banana lúc đó mình sẽ được học thực tế hơn, đồng thời cũng dc en banana --=0).
Thank các bác.
Mình đã hiểu, mình còn nhìu théc méc lém, nhưng mình nghĩ chắc post từng tiêu đề để các bác đỡ ngán ngẫm mình )(&&@@.
 
Upvote 0
đây là code in một trang hiện hành
PHP:
Sub intrangbangdiemchuan_Click()
On Error GoTo baoloi:
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
        :=True
baoloi:
End
End Sub
cồn bên dưới là file in các trang tự lựa chọn nhé! chỉ là file tham khảo thôi

Cho gọn lại xíu bạn ạ:

PHP:
Sub intrangbangdiemchuan_Click()
    On Error Resume Next
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
End Sub

Hoặc :

PHP:
Sub intrangbangdiemchuan_Click()
    On Error Resume Next
    ActiveWindow.SelectedSheets.PrintOut
End Sub

Thân!
 
Upvote 0
Hi các bạn!

Cho hỏi chút nhen.
Nếu chưa định dạng trang in nằm gọn trong khổ giấy A4 mà ActiveWindow.SelectedSheets.PrintOut hay ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True thì lở đáng lý ra 1 trang giấy lại ra 2 trang thì sao đây?.
Nhờ cho thêm vài đọan code bắt định dạng kéo các line ra hết trang A4 trước khi in nhen.

Thân.
 
Upvote 0
Bạn xem nhé :

PHP:
    With ActiveSheet.PageSetup
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With


Thân!
 
Upvote 0
Hì bạn!

Hình như bạn hiều lầm ý mình rùi.
Bạn phải định dạng trang in A4 + kéo các line trong margins thành:Top&Bottom=0.28, left&right=0.24, Header&footer=0.18 trước khi thực hiện in trang hiện hành hoặc từ trang 1 đến trang 1 chứ.

Thân.
 
Upvote 0
Hì bạn!

Hình như bạn hiều lầm ý mình rùi.
Bạn phải định dạng trang in A4 + kéo các line trong margins thành:Top&Bottom=0.28, left&right=0.24, Header&footer=0.18 trước khi thực hiện in trang hiện hành hoặc từ trang 1 đến trang 1 chứ.

Thân.

Đề bài chỉ là lệnh in thôi, đâu có nói đến vụ trước khi in phải Format ??-\\/.

Lười quá, ghi macro đi.:=\+

Thân!
 
Upvote 0
Bác Okebab cho hỏi thêm nhé: Tôi đã tạo nút macro để in, nhưng hiện tại tôi phải làm 3 nút để in 3 trang khác nhau. Làm thế nào để chỉ một nút in mà có thể in 1,2, hoặc nhiều trang tùy theo điều kiện (tôi đã có ô điều kiện số trang, ví dụ muốn in 1 trang thì ô hiện số 1...)??? Cảm ơn bác
 
Upvote 0
Bác Okebab cho hỏi thêm nhé: Tôi đã tạo nút macro để in, nhưng hiện tại tôi phải làm 3 nút để in 3 trang khác nhau. Làm thế nào để chỉ một nút in mà có thể in 1,2, hoặc nhiều trang tùy theo điều kiện (tôi đã có ô điều kiện số trang, ví dụ muốn in 1 trang thì ô hiện số 1...)??? Cảm ơn bác

Xin hỏi rõ thêm là : 3 trang khác nhau hay 3 Sheet khác nhau ??

Thân!
 
Upvote 0
Hiện tại tôi đang cần in 3 trang trên cùng 1 sheet, bác làm giúp luôn với trường hợp 3 trang trên 3 sheet nhé???
 
Upvote 0
Bác xem file gửi kèm nhé. Có thể cho tôi số điện thoại được không? Bác có thể gửi thẳng file vào địa chỉ ltnam@toyoink-vn.com

Tks
 

File đính kèm

  • Copy of FIR Ver2 03 (6).rar
    170.8 KB · Đọc: 162
Upvote 0
Bác xem file gửi kèm nhé. Có thể cho tôi số điện thoại được không? Bác có thể gửi thẳng file vào địa chỉ ltnam@toyoink-vn.com

Tks

Bạn xem nhé :

PHP:
Private Sub H_CMIn_Click()
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim Sh As Worksheet, iT As Long, iD As Long
    ' Kiem tra loi
    If Me.H_CBSh.Value = "" Then GoTo EndSub
    iT = Val(Me.H_TBTu.Value)
    iD = Val(Me.H_TBDen.Value)
    If iD = 0 Then iD = 1000
    If iT > iD Then GoTo EndSub
    
    Set Sh = Worksheets(Me.H_CBSh.Value)
    Sh.Visible = xlSheetVisible
    Sh.PrintOut From:=iT, To:=iD, Copies:=1
   
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Exit Sub
EndSub:
    MsgBox "Ban chon chua dung, ban hay chon lai !!", vbInformation, "MrOkebab"
    Set Sh = Nothing
End Sub
Thân!
 

File đính kèm

  • FIR Ver2 03 (6)_OB.rar
    173.3 KB · Đọc: 367
Upvote 0
Đề bài chỉ là lệnh in thôi, đâu có nói đến vụ trước khi in phải Format ??-\\/.
Lười quá, ghi macro đi.:=\+
Thân!

He he đừng nói vậy buồn lắm bạn. Việc ghi macro định dạng trước khi in thì đã có bài tranh luận cùng Anh Tuấn rùi, đương nhiên là Tôi biết làm rùi. Chỉ nêu ra đây để hoàn thiện thêm thui, mặc dù đề bài thông yêu cầu nhưng thử hỏi có bao giờ bạn in mà không định dạng trước khi in không, người ta không hỏi có thể người ta chưa quan tâm đến thui hoặc người ta quên.
Mà bạn thêm vài dòng định dạng trang in vào code in của bạn để các bạn khác chưa biết khi biết đến dùng luôn khỏi phải hỏi có tiện không?. Sao lại nói Tôi lười nhỉ ?. Chắc tại các bài viết của Tôi hay bị nói lười thấy không nói nên nói hoài sao?.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,


Thân.
 
Upvote 0
He he đừng nói vậy buồn lắm bạn. Việc ghi macro định dạng trước khi in thì đã có bài tranh luận cùng Anh Tuấn rùi, đương nhiên là Tôi biết làm rùi. Chỉ nêu ra đây để hoàn thiện thêm thui, mặc dù đề bài thông yêu cầu nhưng thử hỏi có bao giờ bạn in mà không định dạng trước khi in không, người ta không hỏi có thể người ta chưa quan tâm đến thui hoặc người ta quên.
Mà bạn thêm vài dòng định dạng trang in vào code in của bạn để các bạn khác chưa biết khi biết đến dùng luôn khỏi phải hỏi có tiện không?. Sao lại nói Tôi lười nhỉ ?. Chắc tại các bài viết của Tôi hay bị nói lười thấy không nói nên nói hoài sao?.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,


Thân.
Hì bạn!

Hình như bạn hiều lầm ý mình rùi.
Bạn phải định dạng trang in A4 + kéo các line trong margins thành:Top&Bottom=0.28, left&right=0.24, Header&footer=0.18 trước khi thực hiện in trang hiện hành hoặc từ trang 1 đến trang 1 chứ.

Thân.


Lười quá, ghi macro đi.:=\+


Có vẻ hay khóc quá nhỉ ?? Ý em nói bác lười là lười ghi macro thôi.@!## Việc này thì với bác dễ như trở bàn tay mà.

Ghi nhận từ Macro :

PHP:
Sub Macro1()

' Macro1 Macro
' Macro recorded 12-09-2008 by MrOkebab
    With ActiveSheet.PageSetup
        .LeftMargin = Application.InchesToPoints(0.24)
        .RightMargin = Application.InchesToPoints(0.24)
        .TopMargin = Application.InchesToPoints(0.28)
        .BottomMargin = Application.InchesToPoints(0.28)
        .HeaderMargin = Application.InchesToPoints(0.18)
        .FooterMargin = Application.InchesToPoints(0.18)
        .PaperSize = xlPaperA4
    End With
End Sub


Thân!
 
Upvote 0
In liên tục

Xin chào anh chị!
Em cũng có trường hợp tương tự nhưng phức tạp hơn 1 chút.
Em muốn in 1 lúc hết các số hóa đơn tại cột B thay vì in từng cái.

Em đã làm được in từng cái rồi, nhưng ngồi chọn số hóa đơn và Click in từng cái lâu quá.

Em muốn Click là in hết toàn bộ Hóa Đơn luôn.
Em ko biết phải viết vòng lặp như thế nào. Mong anh chị giúp đở
Chân thành cám ơn

Hu hu em làm sao kỳ quá
Mã:
Sub Print2()
Dim n As Integer
Dim i As Integer
Application.ScreenUpdating = False
 
Sheets("Du Lieu").Select
    n = Application.WorksheetFunction.CountA(Range("B5:B65000"))
    If n > 0 Then
 
    Sheets("Du Lieu").Select
        For i = 5 To n
            Range("B" & i).Select
            Selection.Copy
            Range("C2").Select
            ActiveSheet.Paste
            Application.CutCopyMode = False
 
            Sheets("Hoa Don").Select
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
            Sheets("Du Lieu").Select
        Next i
    End If
End Sub

ANh chị sửa lại giúp em với
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom