thachthao0710
Thành viên mới
- Tham gia
- 30/3/19
- Bài viết
- 8
- Được thích
- 0
Bạn muốn viết như thế nào và theo mẫu nào nhỉ.Em chào các Anh (Chị).
Anh chị xem giúp em file sau đây.
Em muốn tạo sheet tổng các sheet này nhờ các Anh (Chị) viết giúp em.
Em cảm ơn
Em muốn viết sheet tổng các sheet mà trong các sheet đó là inv khác nhau: mã sản phẩm và tên sản phẩm không giống nhau. Nếu dùng hàm SUMIF thì dẽ rất khó vì sheet tổng là của 12 tháng. File em gửi mới là của 1 tháng. Anh xem giúp em nhéBạn muốn viết như thế nào và theo mẫu nào nhỉ.
"inv" là gì bạn nhỉ?, Sao mã sản phẩm của bạn ở file Tổng không đủ vậy.Em muốn viết sheet tổng các sheet mà trong các sheet đó là inv khác nhau: mã sản phẩm và tên sản phẩm không giống nhau. Nếu dùng hàm SUMIF thì dẽ rất khó vì sheet tổng là của 12 tháng. File em gửi mới là của 1 tháng. Anh xem giúp em nhé
Bạn chạy code sau thử nhé:Em muốn viết sheet tổng các sheet mà trong các sheet đó là inv khác nhau: mã sản phẩm và tên sản phẩm không giống nhau. Nếu dùng hàm SUMIF thì dẽ rất khó vì sheet tổng là của 12 tháng. File em gửi mới là của 1 tháng. Anh xem giúp em nhé
Sub TongHop_HLMT()
Dim i As Integer, strSQl As String
For i = 1 To 17
strSQl = strSQl & " Union All Select * from [" & i & "$A14:F] Where F4 Is Not Null"
Next
strSQl = Right(strSQl, Len(strSQl) - 11)
With CreateObject("ADODB.Recordset")
.Open "Select F2,F3,F4,Sum(F5),Sum(F6) From (" & strSQl & ") Group By F2,F3,F4", "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
Sheet19.Range("B6").CopyFromRecordset .DataSource
End With
End Sub
Em cảm ơn anh mà em ko biết sao lại bị lỗi ở dòng Sheet19.Range("B6").CopyFromRecordset .DataSourceBạn chạy code sau thử nhé:
Mã:Sub TongHop_HLMT() Dim i As Integer, strSQl As String For i = 1 To 17 strSQl = strSQl & " Union All Select * from [" & i & "$A14:F] Where F4 Is Not Null" Next strSQl = Right(strSQl, Len(strSQl) - 11) With CreateObject("ADODB.Recordset") .Open "Select F2,F3,F4,Sum(F5),Sum(F6) From (" & strSQl & ") Group By F2,F3,F4", "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No""" Sheet19.Range("B6").CopyFromRecordset .DataSource End With End Sub
Có thể file của bạn dùng chạy code không có Sheet19, Vậy cái tên sheet mà bạn muốn ghi kết quả là sheet tên gì bạn?Em cảm ơn anh mà em ko biết sao lại bị lỗi ở dòng Sheet19.Range("B6").CopyFromRecordset .DataSource
Anh có thể xem giúp em được không ah.
Dạ file kết quả: Tong HopCó thể file của bạn dùng chạy code không có Sheet19, Vậy cái tên sheet mà bạn muốn ghi kết quả là sheet tên gì bạn?
Bạn thử chỉnh lại code dòng đó như sau:Dạ file kết quả: Tong Hop
Sheets("Tong Hop").Range("B6").CopyFromRecordset .DataSource
Tôi gửi file đính kèm, bạn thử chạy xem có lỗi gì không nhé.Vẫn bị lỗi anh ah. Em gửi lại file đính kèm và hình ảnh lỗi anh xem giúp em hixhix.
View attachment 254562
Dạ em cảm ơn anh đã được rồi ah. Nếu không có chắc em làm khi nào mới xong nữa.Tôi gửi file đính kèm, bạn thử chạy xem có lỗi gì không nhé.
Em có thể làm phiền anh được không ah. Tổng theo tên sản phẩm thì sẽ thế nào ahTôi gửi file đính kèm, bạn thử chạy xem có lỗi gì không nhé.
Lưu ý là bạn phải thay đổi trong code cho phù hợp với file của bạn. Ví dụ có sheet 18 trở đi thì nó chỉ lấy chỉ đến sheet 17 thôi nhé.Dạ em cảm ơn anh đã được rồi ah. Nếu không có chắc em làm khi nào mới xong nữa.
Đã tổng hợp theo từng mã rồi mà bạn???Dạ em có thể làm phiền anh thêm được không ah. Vì em muốn làm tổng theo từng mỗi mã sản phẩm thì sao ah. Vì code anh viết là tổng các sheet lại với nhau
Lưu ý là bạn phải thay đổi trong code cho phù hợp với file của bạn. Ví dụ có sheet 18 trở đi thì nó chỉ lấy chỉ đến sheet 17 thôi nhé.Lưu ý là bạn phải thay đổi trong code cho phù hợp với file của bạn. Ví dụ có sheet 18 trở đi thì nó chỉ lấy chỉ đến sheet 17 thôi nhé.
Đã tổng hợp theo từng mã rồi mà bạn???
Với file của bạn thì tôi chạy như sau:Lưu ý là bạn phải thay đổi trong code cho phù hợp với file của bạn. Ví dụ có sheet 18 trở đi thì nó chỉ lấy chỉ đến sheet 17 thôi nhé.
Dạ em sẽ thay đổi.
Đã tổng hợp theo từng mã rồi mà bạn???
Em không rõ sao còn một số mã lại không thể tổng hợp đượcView attachment 254567
Mình không thấy bạn trả lời câu hỏi của mình và bạn đã có Anh Hai Lúa Miền Tây giúp rồi nhé.Em cảm ơn anh mà em ko biết sao lại bị lỗi ở dòng Sheet19.Range("B6").CopyFromRecordset .DataSource
Anh có thể xem giúp em được không ah.
Anh cho em hỏi nếu office thấp hơn office a đang tạo thì chạy có bị lỗi không ahVới file của bạn thì tôi chạy như sau:
View attachment 254569
Bạn nên xóa hết dữ liệu cũ của sheet kết quả trước khi chạy code thử xem sao nhé.
Bạn dùng bản nào bạn?Anh cho em hỏi nếu office thấp hơn office a đang tạo thì chạy có bị lỗi không ah