cugia_codon_khatty
Thành viên chính thức


- Tham gia
- 23/5/08
- Bài viết
- 68
- Được thích
- 4
- Giới tính
- Nữ
Cách đơn giản nhất là nhập công thức chon từng cột tương ứng cho từng sheet bằng dùng hàm VLOOKUP.Nhờ mọi người trên diễn đàn xem có cách nào tổng hợp giúp em số liệu trên nhiều sheet theo yêu cầu không nhé.
D5 =VLOOKUP($B5;'Them gioBVe'!$B$9:$Q$12;16;0)
Cám ơn MinhCong nhưng làm như vậy thì dễ sai địa chỉ lắm vì dòng có thể khác nhau,Cách đơn giản nhất là nhập công thức chon từng cột tương ứng cho từng sheet bằng dùng hàm VLOOKUP.
VD: tại ô D5 (Trực bảo vệ) tức nó thuộc sheet ThemgioBve chẳng hạn
Tương tự lập công thức cho các ô E5, F5, G5 sau đó copy công thức cho các ô còn lại.Mã:D5 =VLOOKUP($B5;'Them gioBVe'!$B$9:$Q$12;16;0)
Xin chào Bạn thân mến.Nhờ mọi người trên diễn đàn xem có cách nào tổng hợp giúp em số liệu trên nhiều sheet theo yêu cầu không nhé.
Option Explicit
Sub TongHopTruc()
Dim Sh As Worksheet, Rng As Range, sRng As Range, Clls As Range
Dim cCol As Byte, pCol As Byte
Dim ShN As String
On Error GoTo LoiTH
Sheets("Tong hop").Select
Range("d5:D" & [b65500].End(xlUp).Row).Resize(, 4).ClearContents
For Each Clls In Range([C5], [c65500].End(xlUp))
For Each Sh In Worksheets
If Sh.Name <> "Tong hop" And Sh.Name <> "THE" Then
Select Case Sh.Name
Case "BVe"
cCol = 13: pCol = 1
Case "CMn", "ThG"
cCol = 8: pCol = IIf(Sh.Name = "CMn", 2, 3)
Case "TTh"
cCol = 11: pCol = 4
End Select
Set Rng = Sh.Range(Sh.[D8], Sh.[D65500].End(xlUp))
Set sRng = Rng.Find(Clls.Value, , xlValues, xlWhole)
If Not sRng Is Nothing Then
Clls.Offset(, pCol).Value = sRng.Offset(, cCol).Value
End If
End If
Next Sh
Next Clls
Err_: Exit Sub
LoiTH:
MsgBox ShN, , "Erl: " & Erl: Resume Err_
End Sub
Cách anh Công làm thì chính xác nhưng do anh chưa hiểu hết yêu cầu của bài thôi, làm theo cách của anh Công thì những người trùng tên trên nhiều sheet sẽ khó lọc.tôi đồng ý với anh công . theo tôi mỗi cột nên tham chiếu 1 sheet va dùng hàm vlookup là dễ nhất và chính xác nhất
Nếu Bạn sợ trùng tên khó lọc thì có thể căn cứ vào số tài khoản để lọc vậy. Không lẽ số tài khoản cũng trùng sao?Cách anh Công làm thì chính xác nhưng do anh chưa hiểu hết yêu cầu của bài thôi, làm theo cách của anh Công thì những người trùng tên trên nhiều sheet sẽ khó lọc.
Bạn cho biết, trên file đính kèm nó làm việc ra sao đi?!alô
Cám ơn đã quan tâm tới bài tập của tôi nhưng phần code bạn đưa vào mình tải về không dùng được là sao nhỉ? khi thay đổi số liệu thì nó cũng không thay đổi theo bạn có thể làm hoàn thiện giúp mình một file khác nhé. Thanks
Gần như không chạy mặc dù đã kiểm tra rất kỹ vẫn không biết nguyên nhân tại sao???Bạn cho biết, trên file đính kèm nó làm việc ra sao đi?!
các bạn ơi mình vẫn chưa nhận được sự hỗ trợ từ các bạn,mình đang cần gấp xin được sự giúp đỡ từ các bạn
Option Explicit
Sub TongHopVT()
Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
Const Dong As Long = 12: Dim Cot As Byte
Set Sh = Sheets("DinhMuc"): Set Rng = Sh.Range(Sh.[A4], Sh.[A11])
For Each Cls In Range("B2:B8")
1 'Tìm Mã Hàng Tai Trang DinhMuc & Gán Só Luong:'
Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
If sRng Is Nothing Then
Exit For
Else
sRng.Offset(, 2).Value = Cls.Offset(, 2).Value
End If
Next Cls
2 ' Tìm Só Luong Tai DinhMuc & Gán:'
Set Rng = Sh.Range(Sh.[D3], Sh.[iV3].End(xlToLeft))
For Each Cls In Range([B11], [B11].End(xlDown))
Set sRng = Rng.Find(Cls.Value)
If Not sRng Is Nothing Then
Cot = sRng.Column + 1
Cls.Offset(, 1).Value = Sh.Cells(Dong, Cot).Value
End If
Next Cls
End Sub
Khi chén thêm mã SF mới, thì bạn fải thực hiện những công việc sau:Nhưng khi mình chèn thêm mã sản phẩm thì bảng tính lại không chạy chắc do mình làm sai động tác gì đó nhưng mình kg biết gì về Macro ,cho mình hỏi ngòai bảng tính viết bằng macro có thể sử dụng công thức Excel được không bạn ? nếu là excel trường hợp lỗi mình có thể mò mẫm ra được phần bị lỗi bạn giúp mình nhé , cám ơn bạn nhiều
Bạn chỉ giúp mình cách thêm dòng bên sheet định mức và sheet TH thì thêm mã SP và mã nguyên vật liệu ,vì mã sản phẩm bên mình khỏang 300 mã,nếu gặp 1 đơn hàng khỏang 50 mã sản phẩm thì mình làm thế nào? vì đơn hàng mẫu thường sảy ra ,cám ơn bạn nhiều
Nếu bạn muốn dùng công thức thì đây.Rất cám ơn ban SA_DQ đã giúp đỡ mình nhưng khi mình chèn thêm mã sản phẩm thì bảng tính lại không chạy chắc do mình làm sai động tác gì đó nhưng mình kg biết gì về Macro ,cho mình hỏi ngòai bảng tính viết bằng macro có thể sử dụng công thức Excel được không bạn ? nếu là excel trường hợp lỗi mình có thể mò mẫm ra được phần bị lỗi bạn giúp mình nhé , cám ơn bạn nhiều
Nghĩa là bạn không phụ thuộc vào mẫu có sẵn. Vậy tôi xóa bớt các sột SL trong sheet DM luôn cho nó gọn. Bạn xem trong file Cong thuc 1Cám ơn bạn Đệ và các bạn về giải pháp trên vì cũng đã ra được kết quả,nhưng đồng nghĩa với việc mình phải đặt 300 mã trên 300 cột vậy khi tìm mã sản phẩm để sản xuất có lâu không ,bạn còn cách nào nữa không giúp mình với còn không thì phải sử dụng cách của bạn
Cám ơn bạn Tống Văn Đệ đa giúp mình phần công thức cách của bạn đưa ra đã đúng theo ý mình, mình chỉ còn băn khoăn khi mỗi lần sản xuất việc tìm kiếm sản phẩm để gõ số lượng trên 300 cột thì chắc cũng lâu,bạn giúp mình tìm bằng cách nào nhanh nhất làm phiền bạn nhé mình gà về excel lắm ,cảm ơn bạn nhiềuTheo mình thì bố trí dữ liệu logic thì mới tổng hợp bằng công thức được
Mình tạm sửa file của bạn để giải quyết vấn đề.
Nễu có gì chưa ổn thì post tiếp nha
Mở Sheet NVLCanNhap thay đổi số lượng sãn xuất trong G7;H7;I7
Bạn test lại nha
Làm sơ sơ cho bạn ngâm cứu
Không biết giúp được gì không ?
bạn SA_DQ: làm phiền bạn giúp mình bên sheet THop theo phương án nào hiệu qủa và đỡ mất thời gian của bạn và bên sheet này bạn chỉ giúp mình cách thêm mã vật tư , mã sản phẩm bạn cho mình 100 dòng, nhưng cho thêm mình có nút filter xổ xuống và chọn căn cứ từ bên sheet định mức thay vì phải coppy mã sp qua ,phần vật tư nguyên liệu kèm theo cho sản phẩm cũng rất nhiều mã sử dụng cho sản phẩm mình mới chỉ liệt kê tượng trưng thôi,các bạn giúp mình nhé .
cảm ơn tất cả các bạn đã chia xẻ
Option Explicit
Const Dong As Integer = 324
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F2:F" & Dong)) Is Nothing Then
Dim Sh As Worksheet, Rng As Range
Set Sh = Sheets("DinhMuc"): Set Rng = Sh.Range(Sh.[A4], Sh.[A65500].End(xlUp))
Target.Offset(, 1).Value = Rng.Find(Target.Value, , xlFormulas, xlWhole).Offset(, 1).Value
End If
End Sub
Sub TongHopVT()
Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
Dim Cot As Byte
Set Sh = Sheets("DinhMuc")
Set Rng = Sh.Range(Sh.[A4], Sh.[A5].End(xlDown))
Rng.Offset(, 2).Value = "" '<=|'
For Each Cls In Range([f2], Cells(Dong, "F").End(xlUp))
1 'Tìm Mã Hàng Tai Trang DinhMuc & Gán Só Luong:'
Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
If sRng Is Nothing Then
Exit For
Else
sRng.Offset(, 2).Value = Cls.Offset(, 2).Value
End If
Next Cls
2 ' Tìm Só Luong Tai DinhMuc & Gán:'
Set Rng = Sh.Range(Sh.[D3], Sh.[iV3].End(xlToLeft))
For Each Cls In Range([B2], [B2].End(xlDown))
Set sRng = Rng.Find(Cls.Value)
If Not sRng Is Nothing Then
Cot = sRng.Column + 1
Cls.Offset(, 1).Value = Sh.Cells(Dong, Cot).Value
End If
Next Cls
End Sub
PHP:Sub TongHopVT() Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range Dim Cot As Byte Set Sh = Sheets("DinhMuc") Set Rng = Sh.Range(Sh.[A4], Sh.[A5].End(xlDown)) Rng.Offset(, 2).Value = "" '<=|' For Each Cls In Range([f2], Cells(Dong, "F").End(xlUp)) 1 'Tìm Mã Hàng Tai Trang DinhMuc & Gán Só Luong:' Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole) If sRng Is Nothing Then Exit For Else sRng.Offset(, 2).Value = Cls.Offset(, 2).Value End If Next Cls 2 ' Tìm Só Luong Tai DinhMuc & Gán:' Set Rng = Sh.Range(Sh.[D3], Sh.[iV3].End(xlToLeft)) For Each Cls In Range([B2], [B2].End(xlDown)) Set sRng = Rng.Find(Cls.Value) If Not sRng Is Nothing Then Cot = sRng.Column + 1 Cls.Offset(, 1).Value = Sh.Cells(Dong, Cot).Value End If Next Cls End Sub
Trường hợp mình tăng mã vật tư bên sheet THop thì làm cách nào bạn hường dẫn giúp mình với ,và chỉ cho mình giới hạn vùng nào từ dâu đến đâu thì không được chèn dòng & cột mình không biết gì về macro giúp mình nhé Tks
Cám Ơn Bạn SA_DQ, cho mình hỏi thêm ,nếu tăng phần mã nguyên vật liệu kèm theo sản phẩm bên sheet định mức thì công thức phải sửa ở đâu ,vì sẽ có trường hợp sản phẩm có cấu trúc khác nhau nên sẽ có những vật tư kèm theo khác nhau ,mình vừa tăng 1 mã mới (vật tư ) nhưng bên sheet THop không chạy kết qua, phiền bạn giúp nốt cho mình nhé ,Tks
Sub ChepDMVT()
Dim Cls As Range, Rng As Range
Sheets("DinhMuc").Select
Set Rng = Range([D3], [iV3].End(xlToLeft))
For Each Cls In Rng
If Cls.Value <> "" Then
With Sheets("TongHop").[B65500].End(xlUp).Offset(1)
.Value = Cls.Value
End With
End If
Next Cls
End Sub
Ban ơi;nhưng khi ở máy của mình thì chạy được còn chuyển qua 3 máy khác thi mở được file ra gõ số liệu vào thì nhấn tổng hợp số liệu kg chạy và báo lỗi giúp mình với mình đang cần , cảm ơn nhiều
Đặt tên mã Sản phẩm theo từng nhóm rồi group lại
Cái này mình nghĩ bạn biết làm mà
Hoặc làm vài cái nút để Hide bớt column không có dữ liệu đi
chỉ để lại công thức dòng trên cùng
Còn những dòng sau thì paste value cho nhẹ file