in dữ liệu theo điều kiện

Liên hệ QC

duongkhanhphuc

Thành viên mới
Tham gia
31/8/09
Bài viết
19
Được thích
1
em có 2 sheets: danh sach, phiếu hẹn.
Dữ liệu bên sheet danh sách sẽ được nhập hằng ngày. mỗi khi có dữ liệu của 1 hàng ngang, ta in phiếu hẹn cho mỗi hàng nào được chọn. Dữ liệu của hàng ngang sẽ được điền vào phieu hen và in, với điều kiện dữ liệu lắp đúng các ô có mã màu tương ứng mà em đã tô. sau khi in thì sheets phiếu hẹn sẽ không lưu hoặc chỉ lưu lại dữ liệu mới in gần nhất, và tự động thay đổi khi ta in dữ liệu của hàng ngang khác nào đó bên sheet danh sách.
bác nào làm được chỉ giáo cho em học hỏi.
thanks
 

File đính kèm

  • Book1.xls
    19 KB · Đọc: 37
em có 2 sheets: danh sach, phiếu hẹn.
Dữ liệu bên sheet danh sách sẽ được nhập hằng ngày. mỗi khi có dữ liệu của 1 hàng ngang, ta in phiếu hẹn cho mỗi hàng nào được chọn. Dữ liệu của hàng ngang sẽ được điền vào phieu hen và in, với điều kiện dữ liệu lắp đúng các ô có mã màu tương ứng mà em đã tô. sau khi in thì sheets phiếu hẹn sẽ không lưu hoặc chỉ lưu lại dữ liệu mới in gần nhất, và tự động thay đổi khi ta in dữ liệu của hàng ngang khác nào đó bên sheet danh sách.
bác nào làm được chỉ giáo cho em học hỏi.
thanks
Bạn dùng code sau nhe:

Mã:
Sub InPhieu()
Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox( _
"Vui long quet chon vung co so thu tu can in " & _
    vbNewLine & vbNewLine & vbNewLine & _
    vbNewLine & "cot so thu tu 'A' cua sheet DANH SACH ", "Chon so thu tu", Type:=8)
On Error GoTo 0
If Not rng Is Nothing Then
  For Each rng In rng
    Range("B7") = rng.Value
     rng.Offset(0, 9) = "X"
    ' neu ban muon xem lai truoc khi in thi thay PrintOut bang PrintPreview
    If Range("B7").Value <> "" Then ActiveWindow.SelectedSheets.PrintOut '1, 2, 2
    
    'If Range("B7").Value <> "" Then ActiveWindow.SelectedSheets.PrintPreview
   
  Next rng
Else
  MsgBox "Ban da khong chon in"
End If
End Sub
 

File đính kèm

  • In Phieu Hen.rar
    10.5 KB · Đọc: 115
em có 2 sheets: danh sach, phiếu hẹn.
Dữ liệu bên sheet danh sách sẽ được nhập hằng ngày. mỗi khi có dữ liệu của 1 hàng ngang, ta in phiếu hẹn cho mỗi hàng nào được chọn. Dữ liệu của hàng ngang sẽ được điền vào phieu hen và in, với điều kiện dữ liệu lắp đúng các ô có mã màu tương ứng mà em đã tô. sau khi in thì sheets phiếu hẹn sẽ không lưu hoặc chỉ lưu lại dữ liệu mới in gần nhất, và tự động thay đổi khi ta in dữ liệu của hàng ngang khác nào đó bên sheet danh sách.
bác nào làm được chỉ giáo cho em học hỏi.
thanks
Một cách khác cho bạn đây:
1. Tạo một module mới và dán sub này vào
PHP:
Sub InPhieu(R As Long)
    With Sheet1
        .Cells(R, 2).Copy Sheet2.[C9,H9]
        .Cells(R, 3).Copy Sheet2.[B10,G10]
        .Cells(R, 4).Copy Sheet2.[C17]
        .Cells(R, 5).Copy Sheet2.[B13,G13]
        .Cells(R, 6).Copy Sheet2.[B20,G20]
        .Cells(R, 7).Copy Sheet2.[C29,K29]
        .Cells(R, 8).Copy Sheet2.[C25,K25]
        .Cells(R, 9).Copy Sheet2.[I35:K35]
    End With
    Sheet2.PrintOut
End Sub
2. Tạo nút lệnh In phiếu (giả sử nút này có tên là CmdIn) trên sheet Danh sach và viết code cho nút này là:
PHP:
Private Sub CmdIn_Click()
    Dim Cll As Range
    For Each Cll In Selection
        InPhieu (Cll.Row)
    Next Cll
End Sub
3. Khi dùng, bạn có thể chọn các hàng cần in (mỗi hàng chỉ chọn một ô bất kỳ trong hàng), có thể chọn các hàng liên tục hoặc tách rời. Sau đó nhấn nút In phiếu là xong.
 

File đính kèm

  • Copy of Book1.xls
    34 KB · Đọc: 55
Mình dùng Code của Hai Lúa miền tây chạy rất tốt cảm ơn bạn đã chia sẻ tới mình câu hỏi của bạn
Áp dụng vào ứng dụng của mình kết quả hơn cả mong đợi đặt ra.
Anh em nào cần in trộn trên Excel có thể ứng dụng code này nhé,
Excel thật tuyệt vời! giờ mình có thể khẳng định Excel in trộn giống tính năng của Word được
Ứng dụng vào viết giấy mời hội họp rất nhanh đấy
http://www.mediafire.com/?va499y6ap2uvgum
 
em đã dùng và rất hiệu quả em chỉ muổn hỏi là muốn sao ra nhiều bộ thì làm thế nào
 
em đã dùng và rất hiệu quả em chỉ muổn hỏi là muốn sao ra nhiều bộ thì làm thế nào

Sửa dòng này
If Range("B7").Value <> "" Then ActiveWindow.SelectedSheets.PrintOut '1, 2, 2
Thành
If Range("B7").Value <> "" Then ActiveWindow.SelectedSheets.PrintOut Copies:=5
hoặc thành
If Range("B7").Value <> "" Then ActiveWindow.SelectedSheets.PrintOut '5, 2, 2
 
Code của hai lúa mình áp dụng vào trường hợp in trộn của mình rất tốt với câu hỏi mình đặt ra. Tuy chưa thực sự đúng mục đích của mình. rất mong Hai Lúa và mọi người giúp viết code theo mục đích của mình với. Câu hỏi của mình bên Đề tài này
http://www.giaiphapexcel.com/forum/showthread.php?74126-Code-VBA-in-trộn-trong-Excel

Đề tài hơi lâu nhưng anh Hiểu thử dùng tiện ích In Form link tại chữ ký của em xem có giải quyết được vấn đề không nhé.
 
Bạn dùng code sau nhe:

Mã:
Sub InPhieu()
Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox( _
"Vui long quet chon vung co so thu tu can in " & _
    vbNewLine & vbNewLine & vbNewLine & _
    vbNewLine & "cot so thu tu 'A' cua sheet DANH SACH ", "Chon so thu tu", Type:=8)
On Error GoTo 0
If Not rng Is Nothing Then
  For Each rng In rng
    Range("B7") = rng.Value
     rng.Offset(0, 9) = "X"
    ' neu ban muon xem lai truoc khi in thi thay PrintOut bang PrintPreview
    If Range("B7").Value <> "" Then ActiveWindow.SelectedSheets.PrintOut '1, 2, 2
   
    'If Range("B7").Value <> "" Then ActiveWindow.SelectedSheets.PrintPreview
  
  Next rng
Else
  MsgBox "Ban da khong chon in"
End If
End Sub
bạn giải thích cho mình dòng "
rng.Offset(0, 9) = "X" với. Mới bập bẹ mày mò VBA nên ko biết. cảm ơn bạn nha
 
Web KT

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

Back
Top Bottom