Tạo code cho ra báo cáo theo thứ tự (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

satthuvae

Thành viên thường trực
Tham gia
12/3/09
Bài viết
381
Được thích
52
Em có file theo dõi tình hình của khách hàng
Do File của em mỗi một khách hàng là có định dạng giống nhau, chỉ khác là sắp xếp theo dòng.
Định kỳ hàng tháng em phải báo cáo, nhưng mỗi lần gửi của 1 khách hàng em lại phải xóa các khách hàng khác. Anh chị có thể giúp em tạo code chạy tự đồng ra báo cáo mà chỉ cần nhập số thứ tự của khách hàng đó không à.

Em xin cám ơn và gửi file đính kèm à.
 

File đính kèm

Em có file theo dõi tình hình của khách hàng
Do File của em mỗi một khách hàng là có định dạng giống nhau, chỉ khác là sắp xếp theo dòng.
Định kỳ hàng tháng em phải báo cáo, nhưng mỗi lần gửi của 1 khách hàng em lại phải xóa các khách hàng khác. Anh chị có thể giúp em tạo code chạy tự đồng ra báo cáo mà chỉ cần nhập số thứ tự của khách hàng đó không à.

Em xin cám ơn và gửi file đính kèm à.
G6 =OFFSET('Doi chieu'!$A$5,($A$6-1)*12+ROW(1:1),COLUMN()-1)
copy cho tất cả các ô còn lại
 
Upvote 0
Em có file theo dõi tình hình của khách hàng
Do File của em mỗi một khách hàng là có định dạng giống nhau, chỉ khác là sắp xếp theo dòng.
Định kỳ hàng tháng em phải báo cáo, nhưng mỗi lần gửi của 1 khách hàng em lại phải xóa các khách hàng khác. Anh chị có thể giúp em tạo code chạy tự đồng ra báo cáo mà chỉ cần nhập số thứ tự của khách hàng đó không à.

Em xin cám ơn và gửi file đính kèm à.

Cái này dùng ct cho nhanh, còn vẫn muốn code thì đây
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
    If Target.Address = "$BH$1" Then
        For i = 6 To Range("E65000").End(3).Row Step 12
            If Cells(i, 1) = Range("BH1").Value Then
                Range("A" & i & ":BG" & i + 11).Copy Sheet2.Range("A6")
                Exit sub
            End If
        Next
    End If
End Sub
 
Upvote 0
Cái này dùng ct cho nhanh, còn vẫn muốn code thì đây
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
    If Target.Address = "$BH$1" Then
        For i = 6 To Range("E65000").End(3).Row Step 12
            If Cells(i, 1) = Range("BH1").Value Then
                Range("A" & i & ":BG" & i + 11).Copy Sheet2.Range("A6")
                Exit sub
            End If
        Next
    End If
End Sub

Code của bạn chạy tốt à, mình diễn đạt chưa tốt, ý của mình vẫn làm báo cáo đó, nhưng tạo ra file độc lập, để mình đỡ phải move or copy ra file khác lưu tên cho từng khách hàng, sau đó mình gửi cho từng khách hàng.

Cám ơn bạn nhiều à.
 
Upvote 0
Code của bạn chạy tốt à, mình diễn đạt chưa tốt, ý của mình vẫn làm báo cáo đó, nhưng tạo ra file độc lập, để mình đỡ phải move or copy ra file khác lưu tên cho từng khách hàng, sau đó mình gửi cho từng khách hàng.

Cám ơn bạn nhiều à.

Nếu mà dán ra file khác, thì làm sao giữ lại định dạng các cột? VD cột F bạn chỉ mình cách bạn làm cho nó cố định lại? Từ cột G trở đi thì nó có thanh cuộn.
 
Upvote 0
Em có file theo dõi tình hình của khách hàng
Do File của em mỗi một khách hàng là có định dạng giống nhau, chỉ khác là sắp xếp theo dòng.
Định kỳ hàng tháng em phải báo cáo, nhưng mỗi lần gửi của 1 khách hàng em lại phải xóa các khách hàng khác. Anh chị có thể giúp em tạo code chạy tự đồng ra báo cáo mà chỉ cần nhập số thứ tự của khách hàng đó không à.

Em xin cám ơn và gửi file đính kèm à.
Đã lỡ chạy code rồi. Sao không để có bao nhiêu khách hàng xuất hết bấy nhiêu file. Hay có điều kiện gì để biết cần xuất file khách hàng nào hông. Mất công phải tự gõ số thứ tự vô. Rồi khi xuất file ra bạn muốn lưu tên file như thế nào?
 
Upvote 0
Đã lỡ chạy code rồi. Sao không để có bao nhiêu khách hàng xuất hết bấy nhiêu file. Hay có điều kiện gì để biết cần xuất file khách hàng nào hông. Mất công phải tự gõ số thứ tự vô. Rồi khi xuất file ra bạn muốn lưu tên file như thế nào?

Ý của mình là có file đó theo thứ từ khách hàng từ 1 đến 12 khách hàng chẳng hạn, thường mình theo dõi chung cho các khách hàng đó, nhưng thường cuối tháng, hay đột xuất mình cần báo cáo của một khách hàng, mình nhập theo số thứ tự của khách hàng vào ô mắc định sắn đó, thì tự động tạo file riêng theo mẫu ví dụ đó, mình sẽ lưu lại gửi cho khách hàng theo yêu cầu.
 
Upvote 0
Code của bạn chạy tốt à, mình diễn đạt chưa tốt, ý của mình vẫn làm báo cáo đó, nhưng tạo ra file độc lập, để mình đỡ phải move or copy ra file khác lưu tên cho từng khách hàng, sau đó mình gửi cho từng khách hàng.

Cám ơn bạn nhiều à.
Thế thì dùng code này. File tạo ra cùng folder với file gốc nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
    If Target.Address = "$BH$1" Then
        For i = 6 To Range("E65000").End(3).Row Step 12
            If Cells(i, 1) = Range("BH1").Value Then
                Application.DisplayAlerts = False
                Range("A" & i & ":BG" & i + 11).Copy Sheet2.Range("A6")
                Sheet2.Copy
                ActiveWorkbook.SaveAs ThisWorkbook.Path & "\KH" & Range("BH1").Value, 51
                ActiveWorkbook.Close
                Application.DisplayAlerts = True
                Exit Sub
            End If
        Next
    End If
End Sub
 
Upvote 0
Thế thì dùng code này. File tạo ra cùng folder với file gốc nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
    If Target.Address = "$BH$1" Then
        For i = 6 To Range("E65000").End(3).Row Step 12
            If Cells(i, 1) = Range("BH1").Value Then
                Application.DisplayAlerts = False
                Range("A" & i & ":BG" & i + 11).Copy Sheet2.Range("A6")
                Sheet2.Copy
                ActiveWorkbook.SaveAs ThisWorkbook.Path & "\KH" & Range("BH1").Value, 51
                ActiveWorkbook.Close
                Application.DisplayAlerts = True
                Exit Sub
            End If
        Next
    End If
End Sub

Cám ơn bạn rất nhiều. Code hữu dụng quá, tiết kiệm rất nhiều thời gian cho mình.
 
Upvote 0
Thế thì dùng code này. File tạo ra cùng folder với file gốc nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
    If Target.Address = "$BH$1" Then
        For i = 6 To Range("E65000").End(3).Row Step 12
            If Cells(i, 1) = Range("BH1").Value Then
                Application.DisplayAlerts = False
                Range("A" & i & ":BG" & i + 11).Copy Sheet2.Range("A6")
                Sheet2.Copy
                ActiveWorkbook.SaveAs ThisWorkbook.Path & "\KH" & Range("BH1").Value, 51
                ActiveWorkbook.Close
                Application.DisplayAlerts = True
                Exit Sub
            End If
        Next
    End If
End Sub

Chào bạn, hiện tai mình thấy code chạy và lưu file với tên là "KH" cùng với số thự tự, ví dụ nhập ô BH1 là 2 thì file chạy ra là "KH2" như vậy khá nhanh và lưu được độc lập. Cho mình hỏi thêm một chút code của bạn có thể đổi tên lấy theo tên ở cột B tự động được không à. Ý của mình nhập ô BH1 là 2 thì file chạy ra là "With Vina". Hoặc khi chọn là số 10 thì tên sẽ file là "Steel Flower"

Cám ơn bạn.
 
Upvote 0
Chào bạn, hiện tai mình thấy code chạy và lưu file với tên là "KH" cùng với số thự tự, ví dụ nhập ô BH1 là 2 thì file chạy ra là "KH2" như vậy khá nhanh và lưu được độc lập. Cho mình hỏi thêm một chút code của bạn có thể đổi tên lấy theo tên ở cột B tự động được không à. Ý của mình nhập ô BH1 là 2 thì file chạy ra là "With Vina". Hoặc khi chọn là số 10 thì tên sẽ file là "Steel Flower"

Cám ơn bạn.
Sửa dòng này:
Mã:
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\KH" & Range("BH1").Value, 51
Thành dòng này :
Mã:
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Range("B" & i).Value, 51
 
Upvote 0
Web KT

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

Back
Top Bottom