Anh chị giúp mình In phiếu

Liên hệ QC

vnlife2000

Thành viên chính thức
Tham gia
3/4/07
Bài viết
71
Được thích
0
Mong mọi người giúp tạo và in phiếu như sau:
-Khi nhấn IN thì Hiển thị thông báo in từ số phiếu nào đến số phiếu nào, trước khi in ra thông báo chọn OK hay hủy lệnh
-Sphiếuphụ thuộc vào cột Mã, tức đếm có bao nhiêu mã khác nhau trong cột Mã, ở ví dụlà có 10 mã tương đương sẽ có 10 phiếu. trướckhi in ra thông báo chọn OK hay hủy lệnh.
Cám ơn mọi người.
 

File đính kèm

  • PHIEU_v2.xlsb
    19.7 KB · Đọc: 9
Bài toán in phiếu trên mình đang vướng chỗ lọc trong một phiếu mong các bạn giúp
Khichọn một ô trong list validation thì dữ liệu trong bảng lọc theo giá trị tại ô hiện tại của list validation. Nhờ các bạn giúp code. Mình cảm ơn.
 

File đính kèm

  • loc trong 1 sheet_v2.xlsb
    18.1 KB · Đọc: 7
Bài toán in phiếu trên mình đang vướng chỗ lọc trong một phiếu mong các bạn giúp
Khichọn một ô trong list validation thì dữ liệu trong bảng lọc theo giá trị tại ô hiện tại của list validation. Nhờ các bạn giúp code. Mình cảm ơn.
bạn xem file lọc phiếu
 

File đính kèm

  • loc trong 1 sheet_v2.xlsb
    19.1 KB · Đọc: 21
Bạn xem lại giúp mình, mình tăng thêm một cột, tại dòng Cell(i,4) giờ thành Cell(i,5) nhưng kg chạy bạn. Và nếu số dòng mình test 5000 thì cũng kg chạy bạn ah. Bạn xem lại giúp mình
 
Bạn xem lại giúp mình, mình tăng thêm một cột, tại dòng Cell(i,4) giờ thành Cell(i,5) nhưng kg chạy bạn. Và nếu số dòng mình test 5000 thì cũng kg chạy bạn ah. Bạn xem lại giúp mình
bạn chú ý điều chỉnh các con số màu đỏ
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, i As Long, R As Long
If Target.Address = "$I$2" Then
  Application.ScreenUpdating = False
[COLOR=#ff0000]  R = 5000[/COLOR]
  Rows("11:" & R).EntireRow.Hidden = False
  If Target.Value <> "" Then
    For i = 11 To R
      If Cells(i, [COLOR=#ff0000]5[/COLOR]) <> Target.Value Then
        If Rng Is Nothing Then
          Set Rng = Rows(i & ":" & i)
        Else
          Set Rng = Union(Rng, Rows(i & ":" & i))
        End If
    End If
    Next i
    Rng.EntireRow.Hidden = True
  End If
  Application.ScreenUpdating = True
End If
End Sub
 
Mình thêm STT từ 1 khi lọc giúp mình với
 
Giúp mình số thứ tự nhảy bắt đầu từ 1 khi ta chọn cột điều kiện lọc với bạn.
 
Lần chỉnh sửa cuối:
Giúp mình số thứ tự nhảy bắt đầu từ 1 khi ta chọn cột điều kiện lọc với bạn.
chỉnh lại chổ màu đỏ khi có thay đổi
B là cột với đặc điểm: dưới dòng dữ liệu cuối không có dũ liệu
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, i As Long, R As Long
If Target.Address = "$I$2" Then
  Application.ScreenUpdating = False
  R = 5000
  Rows("11:" & 5000).EntireRow.Hidden = False
  If Target.Value <> "" Then
    For i = 11 To R
      If Cells(i, 1) = "" Then Exit For
      If Cells(i, [COLOR=#ff0000]5[/COLOR]) <> Target.Value Then
        If Rng Is Nothing Then
          Set Rng = Cells(i, 1)
        Else
          Set Rng = Union(Rng, Cells(i, 1))
        End If
      Else
        k = k + 1
        Cells(i, 1) = k
      End If
    Next i
    Rng.EntireRow.Hidden = True
  Else
    Range("A11") = 1
    Range("A11:A" & Range("[COLOR=#ff0000]B60000[/COLOR]").End(xlUp).Row).DataSeries
  End If
  Application.ScreenUpdating = True
End If
End Sub
 
Mong mọi người giúp tạo và in phiếu như sau:
-Khi nhấn IN thì Hiển thị thông báo in từ số phiếu nào đến số phiếu nào, trước khi in ra thông báo chọn OK hay hủy lệnh
-Sphiếuphụ thuộc vào cột Mã, tức đếm có bao nhiêu mã khác nhau trong cột Mã, ở ví dụlà có 10 mã tương đương sẽ có 10 phiếu. trướckhi in ra thông báo chọn OK hay hủy lệnh.
Cám ơn mọi người.
bạn đưa file sát với thực tế để viết cho chuẩn
- cột nào cần in?
- phía dưới dữ liệu có các ô nào? như người tạo ...
 
Code chạy chậm nếu như lọc 1 phiếu có 500 dòng, Bạn giúp mình Code lại chạy nhanh giống như mình chọn AutoFilter.
 
Lần chỉnh sửa cuối:
Bài toán in phiếu trên mình đang vướng chỗ lọc trong một phiếu mong các bạn giúp
Khichọn một ô trong list validation thì dữ liệu trong bảng lọc theo giá trị tại ô hiện tại của list validation. Nhờ các bạn giúp code. Mình cảm ơn.

Code cho module:
Mã:
Sub Locc()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic
Dim z As Long, dk
With ActiveSheet
    .AutoFilterMode = False
    dk = .Range("I2")
    z = .Range("D" & .Rows.Count).End(xlUp).Row
    .Range("D9:D" & z).AutoFilter Field:=1, Criteria1:=dk
'    .Range("A1:D" & z + 3).Printout
    .Range("A1:D" & z + 3).PrintPreview
    .AutoFilterMode = False
End With
Application.ScreenUpdating = True
End Sub
Code cho Sheet2:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$I$2" Then Locc: Target.Select
End Sub
 
Mình lọc một bảng dữ liệu gồm 5000 dòng, trong đó nếu có 500 dòng trùng thì phải đợi 10 giây nó mới hiển thị ra kq, còn trong khi mình dùng autofilter thì bấm vào là có kq ngay bạn ah.
mình không thể viết chạy nhanh hơn khi không biết file thực sự có gì trong đó?
 

File đính kèm

  • Ad_Filter.xlsb
    20.5 KB · Đọc: 9
Họp thư bạn đầy rồi bạn Hiếu ơi.
bạn chú ý điều chỉnh các con số màu đỏ
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, i As Long, R As Long
If Target.Address = "$I$2" Then
  Application.ScreenUpdating = False
[COLOR=#ff0000]  R = 5000[/COLOR]
  Rows("11:" & R).EntireRow.Hidden = False
  If Target.Value <> "" Then
    For i = 11 To R
      If Cells(i, [COLOR=#ff0000]5[/COLOR]) <> Target.Value Then
        If Rng Is Nothing Then
          Set Rng = Rows(i & ":" & i)
        Else
          Set Rng = Union(Rng, Rows(i & ":" & i))
        End If
    End If
    Next i
    Rng.EntireRow.Hidden = True
  End If
  Application.ScreenUpdating = True
End If
End Sub
 
Chào bạn Hiếu, khi mình chạy code thì báo lỗi như hình, khi debug thì tô vàng tại dòng: rsCon.Open szConnect . Nhưng bấm End thì vẫn chạy ra kết quả. và bạn giúp mình chỗ chú thích đoạn nào lấy dữ liệu từ các file con, vì số lượng các dòng của file con sẽ tăng lên theo các dòng màu trắng
er1.jpg
Họp thư bạn đầy rồi bạn Hiếu ơi.
 
Cảm ơn bạn Ba Tê code bạn chạy rất nhanh nhưng làm mất filter dòng mình cần lọc.
Không hiểu câu này:
... nhưng làm mất filter dòng mình cần lọc.
Bạn muốn nói làm mất các dòng "Người Tạo", "Người ..." dưới cuối trang?
Nếu đúng vậy thì bạn tìm trong code sửa lại dòng này:
PHP:
R = Range("A11").End(xlDown).Row - 9           '<-------Thêm - 9'
 
Web KT
Back
Top Bottom