Nhờ giúp đỡ: thay đổi nội dung list của Data validation...

  • Thread starter Thread starter casper
  • Ngày gửi Ngày gửi
Liên hệ QC

casper

Thành viên mới
Tham gia
2/7/06
Bài viết
8
Được thích
0
Trong data validation mình thay đổi nội dung của list nhưng những phần tham chiếu khác không thay đổi theo. Vậy làm thế nào để tự động update sự thay đổi trong list của data validation.
Trong file đính kèm F5:F8 là lấy giá trị data validation của C5:C8. Bây giờ mình muốn khi thay đổi Nguyễn Văn A thành XXX ở C5 thì trong F5:F8 cũng thay đổi theo thì làm ntn?
Mong các bạn giúp
 

File đính kèm

Mình chưa rõ thay đổi theo là như thế nào

Có fải í bạn thế này không?
 

File đính kèm

Có fải í bạn thế này không?
Không phải. lấy ví dụ trên file của bạn. Ở ô A8 đang là bùi Vình Dy, ô H5 cũng là bùi Vình Dy. Bây giờ mình thay đổi tên ở A8 là xxx thì muốn ở ô H5 cũng tự động thay đổi sang xxx mà mình không phải mất công lựa chọn lại
 
Mình mường tượng í định bạn như thế này (Nếu không đúng chổ nào thì la lên nha):

(*) Hiện tại bạn có DS (danh sách) tại vùng 'C5:C8'; & đây cũng là DS nguồn cho các Validation ở tất thẩy các ô từ 'F5:F8'

(*) Lấy ví dụ [F5] & [F8] đang được chọn là Nguyễn Văn A (đều trùng với [C5])

(*) Giờ có fải í bạn là muốn đổi nội dung [C5] thành 'Nguyễn Văn An' thì 2 ô [F5] & [F8] cũng được dổi theo thành 'Nguyễn Văn An' như đang có ở [C5]?
(Cần nói thêm rằng, khi bạn đồi dữ liệu từ 'Nguyễn Văn A' thành 'Nguyễn Văn An' thì dữ liệu trên các ô 'F5:F8' không theo sự thay đổi, nhưng trong hộp Validation đã thay đổi theo [C5].)

Nếu đúng vậy thì mình fân tích qui trình sẽ fải vầy:

(+) Vì sự kiện Worksheet_Change trên 1 ô của trang tính chỉ năm bắt được dữ liệu sau khi bạn đã đổi xong ở [C5]; Có nghĩa là: Nó chỉ nắm được dữ liệu là 'Nguyễn Văn An' chứ không hề lưu dữ liệu 'Nguyễn Văn A'
(+) Muốn nó nhớ cả 'Nguyễn Văn A' & 'Nguyễn Văn An' là cả vấn đề cần tính tiếp!

Nhưng mình ngừng ở đây chờ sự khẳng định iêu cầu từ bạn.
 
Lần chỉnh sửa cuối:
(*) Hiện tại bạn có DS (danh sách) tại vùng 'C5:C8'; & đây cũng là DS nguồn cho các Validation ở tất thẩy các ô từ 'F5:F8'

(*) Lấy ví dụ [F5] & [F8] đang được chọn là Nguyễn Văn A (đều trùng với [C5])

(*) Giờ có fải í bạn là muốn đổi nội dung [C5] thành 'Nguyễn Văn An' thì 2 ô [F5] & [F8] cũng được dổi theo thành 'Nguyễn Văn An' như đang có ở [C5]?
(Cần nói thêm rằng, khi bạn đồi dữ liệu từ 'Nguyễn Văn A' thành 'Nguyễn Văn An' thì dữ liệu trên các ô 'F5:F8' không theo sự thay đổi, nhưng trong hộp Validation đã thay đổi theo [C5].)

Nếu đúng vậy thì mình fân tích qui trình sẽ fải vầy:

(+) Vì sự kiện Worksheet_Change trên 1 ô của trang tính chỉ năm bắt được dữ liệu sau khi bạn đã đổi xong ở [C5]; Có nghĩa là: Nó chỉ nắm được dữ liệu là 'Nguyễn Văn An' chứ không hề lưu dữ liệu 'Nguyễn Văn A'
(+) Muốn nó nhớ cả 'Nguyễn Văn A' & 'Nguyễn Văn An' là cả vấn đề cần tính tiếp!

Nhưng mình ngừng ở đây chờ sự khẳng định iêu cầu từ bạn.

đây đúng là ý của mình. Khi thay đổi từ Nguyễn Văn A sang Nguyễn Văn An thì không cần nó nhớ Nguyễn Văn A. Lúc đó chỉ cần cập nhật theo danh sách mới (nhưng hoàn toàn tự động nhé)
Thanks bạn đã giúp đỡ. Chờ tin của bạn
 
Làm cho bạn 2 trường hợp luôn, thích cái nào chọn cái í!

Ở S1 chỉ đổi trong Validation List

Còn S2 thì đổi dữ liệu theo luôn.
 

File đính kèm

Mình đổi "Nguyễn Văn An" ở S1 và S2 thì có thấy sự tự động thay đổi nào đâu

Trên các trang có cài macro sự kiện

Có khi chương trình diết virus xơi tái đi rồi cũng nên!
 
như vậy là sao nhỉ? mình chưa rõ vấn đề này
 
Mình biết dùng, bạn có code có thể gửi mình xin được không?
Bài số 6 người ta làm sẵn cho bạn rồi còn gì (nên tôi mới hỏi bạn có biết dùng hay không?)
Còn như đã biết dùng thì down về mà.. dùng thôi
Hic...
 
Làm thế nào để được S2 vậy bạn HYen17 ơi
 
Ở trang 'S2' có 2 macro sự kiện:
PHP:
Option Explicit
Dim GPE As String

Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next
 If Not Intersect(Target, Range("C5:C8")) Is Nothing Then
   Dim Rng As Range, sRng As Range
   Dim MyAdd As String
   
   Set Rng = Range("F5:F8")
   Set sRng = Rng.Find(GPE, , xlFormulas, xlWhole)
   If Not sRng Is Nothing Then
      MyAdd = sRng.Address
      Do
         sRng.Value = Target.Value
         Set sRng = Rng.FindNext(sRng)
      Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
   End If
 End If
End Sub
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Intersect(Target, Range("C5:C8")) Is Nothing Then
   GPE = Target.Value
 End If
End Sub
Ở đây có các chú í sau:
Biến GPE là kiểu/dạng chứa chuỗi được khai báo dùng chung trong macro có trong trang tính này;
Macro ngắn: Làm động tác: Hễ bạn đụng đến ô nào trong vùng [C5:C8] thì biến dùng chung sẽ nhận giá trị trong ô vừa bị đụng vào;

Macro sự kiện thứ hai:
Tìm kiếm trong vùng [F5:F8] giá trị chứa trong biến dùng chung;
Nếu tìm thấythì gán trị ô tìm thấy là trị trong ô đang nhập/thay/sửa. . . (của vùng [C5:C8])
 
Ở trang 'S2' có 2 macro sự kiện:
PHP:
Option Explicit
Dim GPE As String

Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next
 If Not Intersect(Target, Range("C5:C8")) Is Nothing Then
   Dim Rng As Range, sRng As Range
   Dim MyAdd As String
  
   Set Rng = Range("F5:F8")
   Set sRng = Rng.Find(GPE, , xlFormulas, xlWhole)
   If Not sRng Is Nothing Then
      MyAdd = sRng.Address
      Do
         sRng.Value = Target.Value
         Set sRng = Rng.FindNext(sRng)
      Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
   End If
 End If
End Sub
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Intersect(Target, Range("C5:C8")) Is Nothing Then
   GPE = Target.Value
 End If
End Sub
Ở đây có các chú í sau:
Biến GPE là kiểu/dạng chứa chuỗi được khai báo dùng chung trong macro có trong trang tính này;
Macro ngắn: Làm động tác: Hễ bạn đụng đến ô nào trong vùng [C5:C8] thì biến dùng chung sẽ nhận giá trị trong ô vừa bị đụng vào;

Macro sự kiện thứ hai:
Tìm kiếm trong vùng [F5:F8] giá trị chứa trong biến dùng chung;
Nếu tìm thấythì gán trị ô tìm thấy là trị trong ô đang nhập/thay/sửa. . . (của vùng [C5:C8])
Cảm ơn bạn nhé,
 
Làm cho bạn 2 trường hợp luôn, thích cái nào chọn cái í!

Ở S1 chỉ đổi trong Validation List

Còn S2 thì đổi dữ liệu theo luôn.
Ở trang 'S2' có 2 macro sự kiện:
PHP:
Option Explicit
Dim GPE As String

Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next
 If Not Intersect(Target, Range("C5:C8")) Is Nothing Then
   Dim Rng As Range, sRng As Range
   Dim MyAdd As String
  
   Set Rng = Range("F5:F8")
   Set sRng = Rng.Find(GPE, , xlFormulas, xlWhole)
   If Not sRng Is Nothing Then
      MyAdd = sRng.Address
      Do
         sRng.Value = Target.Value
         Set sRng = Rng.FindNext(sRng)
      Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
   End If
 End If
End Sub
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Intersect(Target, Range("C5:C8")) Is Nothing Then
   GPE = Target.Value
 End If
End Sub
Ở đây có các chú í sau:
Biến GPE là kiểu/dạng chứa chuỗi được khai báo dùng chung trong macro có trong trang tính này;
Macro ngắn: Làm động tác: Hễ bạn đụng đến ô nào trong vùng [C5:C8] thì biến dùng chung sẽ nhận giá trị trong ô vừa bị đụng vào;

Macro sự kiện thứ hai:
Tìm kiếm trong vùng [F5:F8] giá trị chứa trong biến dùng chung;
Nếu tìm thấythì gán trị ô tìm thấy là trị trong ô đang nhập/thay/sửa. . . (của vùng [C5:C8])
Dạ bạn ơi cho mình hỏi mình copy đoạn code trên, thay đổi vị trí các ô cho phù hợp với file của mình thì có áp dụng được với file của mình không ạ?
 
Dạ bạn ơi cho mình hỏi mình copy đoạn code trên, thay đổi vị trí các ô cho phù hợp với file của mình thì có áp dụng được với file của mình không ạ?
Bạn ơi! Có 2 vấn đề bạn nên biết:
1. Bạn hỏi "có áp dụng được với file của mình không" mà không có file thì làm sao ai biết mà trả lời.
2. Nếu bạn muốn vấn đề của bạn được sự quan tâm của diễn đàn thì bạn nên mở chủ đề mới. Bạn càng trình bày rõ ràng thì càng nhanh nhận được sự trợ giúp.
 
Bạn cứ thử đi, nếu không hay chưa được thì báo lên đây để được giúp tiếp.
 
Bạn ơi! Có 2 vấn đề bạn nên biết:
1. Bạn hỏi "có áp dụng được với file của mình không" mà không có file thì làm sao ai biết mà trả lời.
2. Nếu bạn muốn vấn đề của bạn được sự quan tâm của diễn đàn thì bạn nên mở chủ đề mới. Bạn càng trình bày rõ ràng thì càng nhanh nhận được sự trợ giúp.
Vâng cảm ơn góp ý từ bạn, file của mình đang làm như này ạ
 

File đính kèm

  • 993E245C-E332-4C32-AC03-76B6D22581A2.jpeg
    993E245C-E332-4C32-AC03-76B6D22581A2.jpeg
    121.7 KB · Đọc: 15
  • DB169981-36AA-4A73-997C-9D8A8FE72989.png
    DB169981-36AA-4A73-997C-9D8A8FE72989.png
    243.5 KB · Đọc: 13
Web KT

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

Back
Top Bottom