chỉ giùm cách vừa tự động cập nhật dữ liệu và nhóm lại

Liên hệ QC

tamhoncuada10313

Thành viên thường trực
Tham gia
7/4/08
Bài viết
221
Được thích
65
Trong file của mình em thêm vào một sheet gọi là sheet Bao Duong May.Giờ em muốn làm một việc như vầy:
1/Dữ liệu của Bao duong May sẽ tự động cập nhật theo sheet DMthietbi. Nếu DMthietbi có thêm dữ liệu thì sẽ tự động cập nhật vào Bao Duong May.(Khỏan này thì em đã tìm được một topic trên diễn đàn rồi). Nhưng em chỉ mắc ở chỗ cấu trúc của 2 sheet nó hơi khác nhau.
2/Em muốn làm việc nữa là sẽ căn cứ theo ký tự trong mã mà tự động chèn thêm vào.(Các này em mới chỉ xác định đựoc bc fải làm đầu tiên là:dùng hàm cắt chuỗi cắt lấy 2 ký tự số 5,6 để xác định ra tên phòng thôi)
 

File đính kèm

2/Em muốn làm việc nữa là sẽ căn cứ theo ký tự trong mã mà tự động chèn thêm vào.(Các này em mới chỉ xác định đựoc bc fải làm đầu tiên là:dùng hàm cắt chuỗi cắt lấy 2 ký tự số 5,6 để xác định ra tên phòng thôi)

Mình góp ý tí:
Đối với mã thiết bị/Mã sản phẩm không nên đính vào mã quy định phòng ban. Lỡ như sau này người sử dụng thiết bị đó chuyển qua bộ phận khác làm và đem theo thiết bị luôn thì sao?? Ví dụ: máy laptop chẳng hạn.
Hoặc thiết bị đó chuyển cho người khác ở bộ phận khác sử dụng thì sao, lúc đó chẳng lẽ bạn phải đổi mã lại?
 
Upvote 0
Thêm 1 vài góp í nhỏ, như sau:
* Tên Sheets không nên có khoảng trắng; Mà cũng không nên dài quá như bạn;
Theo mình như vầy: DMTBi, BDMay, LuuTB, NhaCC, SChua, BCao, DMDVi
* Nếu thiết bị dưới 100 cái mà mã dài qua vậy chỉ tổ gõ mệt & tổn hao tài nguyên chứ làm chi!

A*/ Có lần gần đây, 1 bạn đã hỏi & mình đã viết trả lời (không nhớ nữa) là như thế này:
Lấy 1 sheets làm form nhập & sửa dữ liệu;
Khi nhập mã vô (ở đây của bạn là mã thiết bị);
+ Nếu đã có trong DMTBi thì lấy toàn bộ dữ liệu record í đem ra cho bạn để sửa; Sau khi hoàn tất bạn ấn macro, nó sẽ đem những dữ liệu mới sửa gán vô cho record như cũ;
+ Nếu tìm chưa có mã thì sẽ chép xuống dòng cuối của DMTBi;
Trong trường hợp của bạn sẽ chép & sửa cả ở 2 sheets; Nhưng chuyện đó cũng không phải là lớn lắm;
B*/ Chưa hiểu câu (2) của bạn lắm!
Mong bạn cho ý kiến thêm!
 
Lần chỉnh sửa cuối:
Upvote 0
hix,các bác cứ xem cấu trúc của bảng DMthietbi và bảng Bao duong may thì sẽ thấy nó có cấu trúc hơi khác.Giờ em muốn khi thêm dữ liệu vào DMthietbi thì bao duong may sẽ cập nhật theo.
 
Upvote 0
Thiệt khổ quá đi, cái sheet DmThietbi bạn format chi cho 65536 dòng luôn vậy? Sheet DV Ban cũng vậy?

Mình mới chọn để xóa mấy dòng thừa mà máy nó đứng luôn nè, phải tắt bằng task manager. Mình nhớ file trước đã xóa dùm bạn mấy cái vụ này rồi mà ta. Hèn chi dữ liệu bạn có chút xíu mà file nặng khủng khiếp.

các bác cứ xem cấu trúc của bảng DMthietbi và bảng Bao duong may thì sẽ thấy nó có cấu trúc hơi khác.Giờ em muốn khi thêm dữ liệu vào DMthietbi thì bao duong may sẽ cập nhật theo.
Cái này sao bạn không xài Pivotable. Khỏi công thức, khỏi viết code cho mệt, Bạn nghiên cứu thử xem.
 
Lần chỉnh sửa cuối:
Upvote 0
Bác ca_dafi ơi!Bác có thể up file bác sửa giùm em lên đc ko?^ ^ Em muốn viết code là vì em muốn khi dữ liệu ở DMthietbi thay đổi thì sẽ tự động update vào Bao Duong May. Em không xài pivottable vì trong Bao Duong May có thêm 2 cột tình trạng máy (ghi lại tình trạng máy khi bảo dưỡng ) và cột ghi chú.
 
Lần chỉnh sửa cuối:
Upvote 0
Bác ca_dafi ơi!Bác có thể up file bác sửa giùm em lên đc ko?^ ^ Em muốn viết code là vì em muốn khi dữ liệu ở DMthietbi thay đổi thì sẽ tự động update vào Bao Duong May. Em không xài pivottable vì trong Bao Duong May có thêm 2 cột tình trạng máy (ghi lại tình trạng máy khi bảo dưỡng ) và cột ghi chú.

Chào bạn,
Nếu chỉ có thêm 2 cột tình trạng máy và ghi chú thì mình nên gộp nó vào 1 sheet DMThietbi luôn cho tiện bạn à. Sau đó muốn xem lại tình trạng bảo dưỡng thì dùng filter lọc từ DMThietbi ra, như vậy có phải tiện hơn và đỡ tốn thêm một sheet nữa không?
 
Upvote 0
Em muốn tạo một nút "Cập nhật" ở bảng DMthietbi để khi ta nhập thêm thiết bị mới vào,ấn vào nút đó thì nó sẽ tự động thêm mã thiết bị mới vào bảng Bao Duong May.(Sẽ dò tìm mã thiết bị nào ở DMthietbi chua co o Bao Duong May thi se tu dong them vao)
Có bác nào biết viết code này như thế nào?chỉ giùm em với
 
Lần chỉnh sửa cuối:
Upvote 0
Hix, không bác nào giúp em à?chẳng lẽ câu hỏi of em lại chuối thế sao?Đơn giản em chỉ muốn so sánh danh sách mã thiết bị giữa 2 sheet với nhau.Nếu mã nào ở bên Bao Duong May chưa có mà lại có trong DMthietbi thì tự động thêm vào cuối danh sách của Bao Duong May thôi.
Please, help me.
 
Upvote 0
Mình chỉ không đủ trình độ để làm theo yêu cầu của bạn, một khi cột đầu của sheets("Bao Duong may") có các ô trộn lại với nhau như vậy)
Thú thật mình chưa thể vượt qua bức tường trộn các ô như bạn đã đưa mẫu lên!
Lúc đó VBA phải tìm đúng dòng biên dưới để thêm hàng;
Chỉ khi đã thêm dòng mới đúng rồi, ta mới có thể chép dữ liệu từ biến vô dòng đó;

Mình có thói quen, có khi là xấu: CSDL thì để thô, không bôi son, trát phấn;
Chỉ khi nào đưa ra báo cáo thì mới cần thắng bộ lên!
Còn mình chưa rõ cái sheets kể trên giữ dữ liệu thô hay chưng diện như 1 báo cáo!

Chúc vui!
 
Upvote 0
Hix, không bác nào giúp em à?chẳng lẽ câu hỏi of em lại chuối thế sao?Đơn giản em chỉ muốn so sánh danh sách mã thiết bị giữa 2 sheet với nhau.Nếu mã nào ở bên Bao Duong May chưa có mà lại có trong DMthietbi thì tự động thêm vào cuối danh sách của Bao Duong May thôi.
Please, help me.


so sánh mã thiết & tên máy bị thui
hay phải so sánh cả 3 tiêu chí :
+ Mã Thiết bị & Tên Máy
+ Tên Thiết bị & Chủng lợi
+ Người dùng & Người SD

thế nhé

và có cần thống sắp xếp ở sheet Đích (Bao Duong may) vào đúng các bộ phận không?
mà sao tên cột (tiêu đề) ở 2 sheet k thống nhất vậy nhỉ?
.
 
Upvote 0
To bác tiger : Em không cần dữ liệu ở sheet đích (Bao Duong May ) sắp xếp đúng đâu ạ.Chỉ cần thêm vào dòng phía dưới là được.Em chỉ cần so sánh mỗi mã thiết bị và tên máy thôi ạ
To bác SA_DQ: cái sheet Bao Duong may của em cũng là một loại báo cáo ạ.
 
Upvote 0
To bác tiger : Em không cần dữ liệu ở sheet đích (Bao Duong May ) sắp xếp đúng đâu ạ.Chỉ cần thêm vào dòng phía dưới là được.Em chỉ cần so sánh mỗi mã thiết bị và tên máy thôi ạ
To bác SA_DQ: cái sheet Bao Duong may của em cũng là một loại báo cáo ạ.

Không được bạn ah, vì trong Danh mục tbi có nx mã trùng 2 lần, trong Bao Duong... cũng vậy, chắc ít nhất phải so sánh bộ phận nữa

bạn xem sao?
 
Upvote 0
HAY CÓ 1 CÁCH KHÁC

đó là tự sinh ra báo cáo lun, thế là hợp lý, không phải kiểm tra

tức là tạo báo cáo từ DM tbị sinh ra báo cáo tại sheet Bao Duong .........
 
Upvote 0
Vậy bác giúp em cách bác bảo đi.Từ danh mục thiết bị tự sinh ra báo cáo tại sheet bảo dưỡng.Em có ý này: giờ ta chỉ cần rà theo trong danh mục thiết bị những mã nào có ký tự thứ 5,6 bắt đầu bằng TC,KT,KH,.... thì ta nhóm chung một nhóm. Thế có được không bác.
 
Lần chỉnh sửa cuối:
Upvote 0
Vậy bác giúp em cách bác bảo đi.Từ danh mục thiết bị tự sinh ra báo cáo tại sheet bảo dưỡng.Em có ý này: giờ ta chỉ cần rà theo trong danh mục thiết bị những mã nào có ký tự thứ 5,6 bắt đầu bằng TC,KT,KH,.... thì ta nhóm chung một nhóm. Thế có được không bác.


Thế còn TINH TRANG và GHI CHU lấy ở đâu ra
 
Upvote 0
Bây giờ em chỉ muốn làm như thế này thôi:ta sẽ dùng vòng lặp for rà từ đầu đến cuối xem những máy nào cùng một bộ phận sử dụng ở bên DMthietbi thì ta sẽ điền các thông tin:mã máy, người sử dụng, tên thiết bị vào cột tên máy, người sử dụng, chủng loại ở bên Bao Duong May. Giả sử khi quét hết 1 vòng ta sẽ điền được các máy do phòng TC sử dụng thì ta quét tiếp cho đến khi nào điền hết các máy vào thì thôi.Còn mấy cột tình trạng và ghi chú thì để trôngđể tự điền
 
Upvote 0
Em mới viết một đoạn code như thế này ở phần module
Sub update()
Dim last As Long
Dim MP As String
last = Sheet1.Range("B65356").End(xlUp).Row
Dim i As Range
MP = "TC"
If Mid$(Sheet1.Range("B4"), 5, 2) = MP Then
For Each i In Sheet1.Range("B4:B " & last)
Sheet8.Range("C6:C" & last + 2).Value = Sheet1.Range("B4:B" & last).Value
Sheet8.Range("D6:D" & last + 2).Value = Sheet1.Range("C4:C" & last).Value
Sheet8.Range("E6:E" & last + 2).Value = Sheet1.Range("J4:J" & last).Value
Next
End If
End Sub
Mục đích của em là lọc ra những mã máy có 2 ký tự TC. Nhưng nó lại lọc ra tất tần tất các máy. Và nếu em thêm mã mới có 2 ký tự TC ở cuối cùng thì nó không chèn được vào ngay dưới các mã có TC mà nó cũng chèn theo thứ tự giống như bên DMthietbi.
Các bác sửa giùm em với!Em gửi kèm file luôn
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Vậy bác giúp em cách bác bảo đi.Từ danh mục thiết bị tự sinh ra báo cáo tại sheet bảo dưỡng.Em có ý này: giờ ta chỉ cần rà theo trong danh mục thiết bị những mã nào có ký tự thứ 5,6 bắt đầu bằng TC,KT,KH,.... thì ta nhóm chung một nhóm. Thế có được không bác.


Làm xong từ hôm qua, nhưng mất mạng giờ mới upload lên cho bạn

+ Đã thực hiện báo cáo đầy đủ

+ Định dạng lun bản cáo cáo

+ Tên bộ phận được sắp xếp theo A,B,...

+ Không sd merge cells

+ Ghi lại thời gian lập Báo cáo tại ô I5


Xem file gửi kèm, bấm nút CreatReport để tạo báo cáo, Clear Report để xóa báo cáo
 

File đính kèm

Upvote 0
Em mới viết một đoạn code như thế này ở phần module
Sub update()
Dim last As Long
Dim MP As String
last = Sheet1.Range("B65356").End(xlUp).Row
Dim i As Range
MP = "TC"
If Mid$(Sheet1.Range("B4"), 5, 2) = MP Then
For Each i In Sheet1.Range("B4:B " & last)
Sheet8.Range("C6:C" & last + 2).Value = Sheet1.Range("B4:B" & last).Value
Sheet8.Range("D6:D" & last + 2).Value = Sheet1.Range("C4:C" & last).Value
Sheet8.Range("E6:E" & last + 2).Value = Sheet1.Range("J4:J" & last).Value
Next
End If
End Sub
Mục đích của em là lọc ra những mã máy có 2 ký tự TC. Nhưng nó lại lọc ra tất tần tất các máy. Và nếu em thêm mã mới có 2 ký tự TC ở cuối cùng thì nó không chèn được vào ngay dưới các mã có TC mà nó cũng chèn theo thứ tự giống như bên DMthietbi.
Các bác sửa giùm em với!Em gửi kèm file luôn



Oh, bạn xem file của tôi nhé (bài trên) , không cần lọc theo 2 ký tự đó đâu vì cúng ta có cột các bộ phạn rùi mà

Góp ý đoạn CODE trên

+ IF phải đưa vào trong Vòng For chứ,

+ phải xét từng hàng, ứng với mỗi hàng dùng IF
 
Upvote 0
Web KT

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

Back
Top Bottom