Làm sao để xoá số bên sheet này thì số đó tự động nhảy qua sheet kia (2 người xem)

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

NhutLee89

Thành viên mới
Tham gia
13/7/11
Bài viết
11
Được thích
0
Các bạn giúp với
Mình có 1 file excel gồm 3 sheet, sheet 1 gồm "Tiêu đề 1" và 1 bảng trống, sheet 2 gồm "TiêU đề 2" và 1 bảng trống. Sheet 3 trống
1. Ý mình muốn hỏi là làm như thế nào để mình nhập liệu vào bảng của sheet 1 thì nó cũng tự động nhập vào bảng của sheet 2 và ngược lại
2. Khi mình xoá dữ liệu trong bảng của sheet 1 hoặc 2 bằng phím "delete" thì dữ liệu đó tự động chuyển qua sheet 3.
Cảm ơn rất nhiều }}}}}
 
Các bạn giúp với
Mình có 1 file excel gồm 3 sheet, sheet 1 gồm "Tiêu đề 1" và 1 bảng trống, sheet 2 gồm "TiêU đề 2" và 1 bảng trống. Sheet 3 trống
1. Ý mình muốn hỏi là làm như thế nào để mình nhập liệu vào bảng của sheet 1 thì nó cũng tự động nhập vào bảng của sheet 2 và ngược lại
2. Khi mình xoá dữ liệu trong bảng của sheet 1 hoặc 2 bằng phím "delete" thì dữ liệu đó tự động chuyển qua sheet 3.
Cảm ơn rất nhiều }}}}}
Chắc là hơi khó nhưng nếu bạn gởi cái file tạm có dữ liệu để tham khảo thì may ra có thể nghiên cứu tìm cách. Nói chung chung vầy khó lắm
 
Upvote 0
Ý mình hỏi ghi trong file này bạn xem thử
Code này cho sheet 2
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      Sheets("SHEET 1").Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub
Code này cho sheet 1
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      Sheets("SHEET 2").Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub
Sheet 3 chẳng hiểu bạn muốn thế nào nên pó tay.
 
Upvote 0
Hay quá, Cảm ơn bạn}}}}}

Ý mình cái sheet 3 như là cái thùng rác của 2 sheet kia, xoá bât cứ cell nào ở sheet 1,2 là nó nhảy vô sheet 3

Cảm ơn 1 lần nữa nhé, hi.;;;;;;;;;;;
 
Upvote 0
Hay quá, Cảm ơn bạn}}}}}

Ý mình cái sheet 3 như là cái thùng rác của 2 sheet kia, xoá bât cứ cell nào ở sheet 1,2 là nó nhảy vô sheet 3

Cảm ơn 1 lần nữa nhé, hi.;;;;;;;;;;;
Vậy sửa code lại thế này
Code này cho sheet 2
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      If Target.Value = "" Then
         Sheets("SHEET 3").Range(Target.Address) = _
         Sheets("SHEET 1").Range(Target.Address)
      End If
      Sheets("SHEET 1").Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub
Code này cho sheet 1
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      If Target.Value = "" Then
         Sheets("SHEET 3").Range(Target.Address) = _
         Sheets("SHEET 2").Range(Target.Address)
      End If
      Sheets("SHEET 2").Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub
 
Upvote 0
Vậy sửa code lại thế này
Code này cho sheet 2
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      If Target.Value = "" Then
         Sheets("SHEET 3").Range(Target.Address) = _
         Sheets("SHEET 1").Range(Target.Address)
      End If
      Sheets("SHEET 1").Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub
Code này cho sheet 1
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      If Target.Value = "" Then
         Sheets("SHEET 3").Range(Target.Address) = _
         Sheets("SHEET 2").Range(Target.Address)
      End If
      Sheets("SHEET 2").Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub

Quá hay luôn bạn ơi, hỏi đúng người rồi /-*+/
Mình có 1 câu muốn hỏi chắc hơi khó là:
ví dụ: Khi mình xóa số ở sheet 1 hoặc 2 thì nó tự động nhảy qua sheet 3 và nằm đúng theo vị trí ở sheet 1 hoặc 2.(code hiện tại )
Bây giờ mình muốn khi xóa số ở sheet 1 hoặc 2 thì nó tự động nhảy qua sheet 3 nhưng xếp theo thứ tự từ trên xuống. Vì khi mình thao tác ghi và xóa nhiều lần ở cùng 1 cell trong sheet 1,2 thì ở sheet 3 chỉ ghi lại lần xóa cuối cùng ở cùng cell đó.
Nếu sheet 3 có thể ghi lại tất cả thì tốt quá, vì mình thao tác trên rất nhiều sheet và chỉ muốn có 1 nơi để chứa những số mình xóa
Cảm ơn rất chân thành/-*+/
 
Upvote 0
Quá hay luôn bạn ơi, hỏi đúng người rồi /-*+/
Mình có 1 câu muốn hỏi chắc hơi khó là:
ví dụ: Khi mình xóa số ở sheet 1 hoặc 2 thì nó tự động nhảy qua sheet 3 và nằm đúng theo vị trí ở sheet 1 hoặc 2.(code hiện tại )
Bây giờ mình muốn khi xóa số ở sheet 1 hoặc 2 thì nó tự động nhảy qua sheet 3 nhưng xếp theo thứ tự từ trên xuống. Vì khi mình thao tác ghi và xóa nhiều lần ở cùng 1 cell trong sheet 1,2 thì ở sheet 3 chỉ ghi lại lần xóa cuối cùng ở cùng cell đó.
Nếu sheet 3 có thể ghi lại tất cả thì tốt quá, vì mình thao tác trên rất nhiều sheet và chỉ muốn có 1 nơi để chứa những số mình xóa
Cảm ơn rất chân thành/-*+/
Bạn xem đoạn này và tự sửa lại cho đoạn code kia
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      If Target.Value = "" Then
         [COLOR=#ff0000]Sheet3.Cells(65536, Target.Column).End(3)(2)[/COLOR] = _
         Sheet1.Range(Target.Address)
      End If
      Sheet1.Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub
 
Upvote 0
Hỏi nhỏ chủ thớt: muốn ghi lại lịch sử dữ liệu mà đã thử bao giờ chưa?
Sau một hồi sửa xoá thì mấy con số trên chỉ là vô nghĩa. Nhìn vào có biết nó ở đâu ra?
 
Lần chỉnh sửa cuối:
Upvote 0
Hỏi nhỏ chủ thớt: muốn ghi lại lịch sử dữ liệu mà đã thử bao giờ chưa?
Sau một hồi sửa xoá thì mấy con số trên chỉ là vô nghĩa. Nhìn vào có biết nó ở đâu ra?

Mình chỉ hình dung ra được chứ chưa thử vì không biết làm, còn ghi lại lịch sử dữ liệu ở sheet 3 thì chỉ ghi lại dữ liệu bị xóa đi khi mình nhấn delete vào cell ở sheet 1,2 (giống như thùng rác trên máy tính zậy). sheet 3 nó chỉ ghi lại dữ liệu bị xóa "ở cell" chứ không ghi lại thao tác "trong cell"
 
Upvote 0
Bạn xem đoạn này và tự sửa lại cho đoạn code kia
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      If Target.Value = "" Then
         [COLOR=#ff0000]Sheet3.Cells(65536, Target.Column).End(3)(2)[/COLOR] = _
         Sheet1.Range(Target.Address)
      End If
      Sheet1.Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub

Không biết nói gì hơn, Cảm Ơn bạn }}}}}
 
Upvote 0
Bạn xem đoạn này và tự sửa lại cho đoạn code kia
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      If Target.Value = "" Then
         [COLOR=#ff0000]Sheet3.Cells(65536, Target.Column).End(3)(2)[/COLOR] = _
         Sheet1.Range(Target.Address)
      End If
      Sheet1.Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub

Hiện tại mình đang dùng code của bạn rất tốt, nhưng khi mình xóa hoặc ghi nhiều cell cùng 1 lúc thì nó bị lỗi, có cách khắc phục nào không bạn /-*+/
 
Upvote 0
Code này cho sheet 2
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      Sheets("SHEET 1").Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub
Code này cho sheet 1
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:E7]) Is Nothing Then
   Application.EnableEvents = False
      Sheets("SHEET 2").Range(Target.Address) = Target.Value
   Application.EnableEvents = True
End If
End Sub
Sheet 3 chẳng hiểu bạn muốn thế nào nên pó tay.

cho mình hỏi, nếu mình muốn dùng code này cho 2 sheet trên workbook khác nhau thì làm như thế nào, và 3 sheet trên 3 workbook khác nhau thì phải làm sao, cảm ơn ạ!$@!!
 
Upvote 0
cho mình hỏi, nếu mình muốn dùng code này cho 2 sheet trên workbook khác nhau thì làm như thế nào, và 3 sheet trên 3 workbook khác nhau thì phải làm sao, cảm ơn ạ!$@!!
Thật ra bạn muốn cụ thể thế nào thì phải có file và dữ liệu thật đàng hoàng thì mọi người cùng nghiên cứu. Với những câu hỏi chung chung tức là chỉ cần hướng đi, người hỏi sẽ tự xử phần còn lại. Quan điểm của mình là "không có gì khó, khó quá thì... bỏ". Mà hình như yêu cầu của bạn bắt đầu khó rồi...cho nên mình bỏ thôi.
 
Upvote 0
Thật ra bạn muốn cụ thể thế nào thì phải có file và dữ liệu thật đàng hoàng thì mọi người cùng nghiên cứu. Với những câu hỏi chung chung tức là chỉ cần hướng đi, người hỏi sẽ tự xử phần còn lại. Quan điểm của mình là "không có gì khó, khó quá thì... bỏ". Mà hình như yêu cầu của bạn bắt đầu khó rồi...cho nên mình bỏ thôi.

Trong bài #9 tôi có đặt vấn đề là chủ thớt có lẽ chỉ mới có ý tưởng chứ chưa biết sau khi làm thì kết quả sẽ ra sao.
Theo bài #10 thì chính chủ thớt đã xác nhận.

Vì vậy cái đồ án này coi như thuộc loại thử nghiệm, làm qua mức A mới thấy dạng mức B, xong B mới thấy C... Lắm khi đến C mới thấy A sai từ đầu.

Chuyện đồ án thử nghiệm như thế này xảy ra hà rầm ở đây. Nếu bạn để ý sẽ thấy tôi luôn luôn tránh những loại bài mà người hỏi có vẻ chỉ có ý tưởng chứ chưa hề biết qua kết quả.

@chủ thớt: công việc của cái "thùng rác" không đơn giản như bạn nghĩ.
Khi hệ thống xoá "permanent" một file thì sẽ đánh dấu phần mapping của ổ đĩa là "free". Về sau, lúc cần đĩa cho file khác thì hệ thống chỉ xét qua các khoảng "free" và lấy ra.
Khi hệ thống xoá file theo kiểu thùng rác thì nó không hề đánh dấu "free". Nó chỉ việc dời địa chỉ của file sang folder Recycle. Folder Recylce có một mục lục cho biết xuất xứ của các files được dời vào. Trên ổ đĩa, cái file của bạn vẫn nằm chình ình đó.
Cái bạn muốn là cái có thể theo dõi quá trình thay đổi dữ liệu. Tiếng nhà nghề gọi là audit trail và nếu chu trình phức tạp hơn thì data shadowing. Nó tương đối khá phức tạp.
 
Upvote 0
Trong bài #9 tôi có đặt vấn đề là chủ thớt có lẽ chỉ mới có ý tưởng chứ chưa biết sau khi làm thì kết quả sẽ ra sao.
Theo bài #10 thì chính chủ thớt đã xác nhận.

Vì vậy cái đồ án này coi như thuộc loại thử nghiệm, làm qua mức A mới thấy dạng mức B, xong B mới thấy C... Lắm khi đến C mới thấy A sai từ đầu.

Chuyện đồ án thử nghiệm như thế này xảy ra hà rầm ở đây. Nếu bạn để ý sẽ thấy tôi luôn luôn tránh những loại bài mà người hỏi có vẻ chỉ có ý tưởng chứ chưa hề biết qua kết quả.

@chủ thớt: công việc của cái "thùng rác" không đơn giản như bạn nghĩ.
Khi hệ thống xoá "permanent" một file thì sẽ đánh dấu phần mapping của ổ đĩa là "free". Về sau, lúc cần đĩa cho file khác thì hệ thống chỉ xét qua các khoảng "free" và lấy ra.
Khi hệ thống xoá file theo kiểu thùng rác thì nó không hề đánh dấu "free". Nó chỉ việc dời địa chỉ của file sang folder Recycle. Folder Recylce có một mục lục cho biết xuất xứ của các files được dời vào. Trên ổ đĩa, cái file của bạn vẫn nằm chình ình đó.
Cái bạn muốn là cái có thể theo dõi quá trình thay đổi dữ liệu. Tiếng nhà nghề gọi là audit trail và nếu chu trình phức tạp hơn thì data shadowing. Nó tương đối khá phức tạp.

Cảm ơn bạn đã góp ý, do mình chưa biết gì về VBA, nhưng công việc cần gấp nên mình đành hỏi trước và học sau. Và đúng như bạn nói mình có ý tưởng và chưa hề biết có làm được hay không, còn vấn đề cái " thùng rác" thì QuangHai1969 đã viết code được rồi. Mình hỏi để làm việc chứ không phải hỏi chỉ để thử nghiệm và hoàn toàn không cố ý làm mất thời gian của mấy bạn. Cảm ơn bạn đã nhiệt tình góp ý.
 
Upvote 0
Thật ra bạn muốn cụ thể thế nào thì phải có file và dữ liệu thật đàng hoàng thì mọi người cùng nghiên cứu. Với những câu hỏi chung chung tức là chỉ cần hướng đi, người hỏi sẽ tự xử phần còn lại. Quan điểm của mình là "không có gì khó, khó quá thì... bỏ". Mà hình như yêu cầu của bạn bắt đầu khó rồi...cho nên mình bỏ thôi.
Cảm ơn bạn, do mình chưa học VBA nên không biết cách hỏi như thế nào và hoàn toàn không biết viết code nên không biết phải làm sao, nên hỏi nhiều mình cũng ngại lắm, mấy hôm nay làm phiền bạn quá, Cảm ơn bạn lần nữa vì sự nhiệt tình!/-*+/ Phần còn lại mình sẽ tự học và làm thử.
 
Upvote 0
... Mình hỏi để làm việc chứ không phải hỏi chỉ để thử nghiệm ...

Bạn không phân biệt được thế nào là "thử nghiệm" và "thực thụ"

Đồ án thực thụ bắt đầu khi nào người ta đã xác định được mục đích, đã có mô hình của kết quả, và đã biết được trên 60-70% tình huống dữ liệu.
1. Phải có mục đích mới biết được có nên thực hiện, và có thể xét được tính khả thi.
2. Phải có mô hình kết quả mới so sánh được giải thuật đúng sai.
3. Phải nắm được trên 60-70% tình huống dữ liệu thì mới bắt đầu code được.

Đồ án của bạn lúc khởi đầu chỉ có 1, thiếu hẳn 2 và 3.
Qua mấy bài sau mới thấy lấp ló điều 2; và chỉ lấp ló chứ chưa rõ mặt. Bằng chứng là sau khi bạn nhận code và chạy rồi mới thấy kết quả mà bạn diễn đạt ban đầu không đủ. Và bạn nâng cấp yêu cầu.
Và cho đến nay vẫn chưa thấy mục 3.
Theo định nghĩa, nó chỉ là "ý tưởng". Chưa hề qua giai đoạn xét "khả thi". Tôi gọi là "thử nghiệm" là đã nâng cấp rồi.

Quản trị đồ án là nồi cơm của tôi đã nhiều năm. Tôi biết mình nói gì.
 
Upvote 0
Bạn không phân biệt được thế nào là "thử nghiệm" và "thực thụ"

Đồ án thực thụ bắt đầu khi nào người ta đã xác định được mục đích, đã có mô hình của kết quả, và đã biết được trên 60-70% tình huống dữ liệu.
1. Phải có mục đích mới biết được có nên thực hiện, và có thể xét được tính khả thi.
2. Phải có mô hình kết quả mới so sánh được giải thuật đúng sai.
3. Phải nắm được trên 60-70% tình huống dữ liệu thì mới bắt đầu code được.

Đồ án của bạn lúc khởi đầu chỉ có 1, thiếu hẳn 2 và 3.
Qua mấy bài sau mới thấy lấp ló điều 2; và chỉ lấp ló chứ chưa rõ mặt. Bằng chứng là sau khi bạn nhận code và chạy rồi mới thấy kết quả mà bạn diễn đạt ban đầu không đủ. Và bạn nâng cấp yêu cầu.
Và cho đến nay vẫn chưa thấy mục 3.
Theo định nghĩa, nó chỉ là "ý tưởng". Chưa hề qua giai đoạn xét "khả thi". Tôi gọi là "thử nghiệm" là đã nâng cấp rồi.

Quản trị đồ án là nồi cơm của tôi đã nhiều năm. Tôi biết mình nói gì.
À ra vậy, mình tưởng bạn nghĩ mình hỏi chỉ để khỏi suy nghĩ và hỏi xong chỉ để đó, bạn thông cảm, mình k có ý gì hết, chỉ là mình hiểu không hết ý bạn nói, cảm ơn bạn đã góp ý.
 
Upvote 0

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

Back
Top Bottom