Dữ liệu trùng ở hai cột sẽ tự động đứng cùng một hàng (2 người xem)

Liên hệ QC

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

nguyenhavithao

Thành viên mới
Tham gia
13/4/11
Bài viết
40
Được thích
0
Em có vấn đề này nhờ mọi người giúp em.

Làm thế nào để khi nhập dữ liệu, nếu dữ liệu đó trùng với dữ liệu ở cột bên cạnh thì sẽ tự động nhảy xuống hàng ngay bên cạnh dữ liệu trùng đã có ạ? Các bác xem giúp em VD trong file đính kèm.

Mong các bác giúp em. Cảm ơn
 

File đính kèm

Em có vấn đề này nhờ mọi người giúp em.
Làm thế nào để khi nhập dữ liệu, nếu dữ liệu đó trùng với dữ liệu ở cột bên cạnh thì sẽ tự động nhảy xuống hàng ngay bên cạnh dữ liệu trùng đã có ạ? Các bác xem giúp em VD trong file đính kèm.
Mong các bác giúp em. Cảm ơn
Việc này phải dùng đến VBA rồi. Bạn dùng code sau nhé:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Range
    If Intersect(Target, [B4:B13]) Is Nothing Then Exit Sub
    Set Rng = Range("A4:A13").Find(what:=Target, lookat:=xlWhole)
    If Not Rng Is Nothing Then
        Application.EnableEvents = False
        Rng.Offset(, 1) = Target
        Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub
 

File đính kèm

Việc này phải dùng đến VBA rồi. Bạn dùng code sau nhé:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Range
    If Intersect(Target, [B4:B13]) Is Nothing Then Exit Sub
    Set Rng = Range("A4:A13").Find(what:=Target, lookat:=xlWhole)
    If Not Rng Is Nothing Then
        Application.EnableEvents = False
        Rng.Offset(, 1) = Target
        Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub

Cảm ơn bác đã giúp em.
Em không biết gì về VBA bác ạ, hic!$@!!, làm thế nào để dùng được cái code kia cho vùng dữ liệu của em ạ? Em stupid quá thể
 
Cảm ơn bác đã giúp em.
Em không biết gì về VBA bác ạ, hic!$@!!, làm thế nào để dùng được cái code kia cho vùng dữ liệu của em ạ? Em stupid quá thể
Nó nằm sẵn trong file đính kèm ở bài trên chứ đâu nữa. Bạn click phải vào nhãn sheet, chọn View code là sẽ thấy code ngay thôi mà.
Nếu dữ liệu thật không giống như vậy thì bạn phải đưa file giống với thực tế nhất lên, như vậy mới có thể nhận được câu trả lời phù hợp.
 
Nó nằm sẵn trong file đính kèm ở bài trên chứ đâu nữa. Bạn click phải vào nhãn sheet, chọn View code là sẽ thấy code ngay thôi mà.
Nếu dữ liệu thật không giống như vậy thì bạn phải đưa file giống với thực tế nhất lên, như vậy mới có thể nhận được câu trả lời phù hợp.

Em gửi file bác làm luôn giúp em với. Ở sheet "Chung chi: ạ. Cảm ơn bác vô cùng.
 

File đính kèm

Em gửi file bác làm luôn giúp em với. Ở sheet "Chung chi: ạ. Cảm ơn bác vô cùng.
Code sẽ là như vầy:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Range
    If Intersect(Target, [F4:F343]) Is Nothing Then Exit Sub
    Set Rng = [E4:E343].Find(what:=Target, lookat:=xlWhole)
    If Not Rng Is Nothing Then
        Application.EnableEvents = False
        Rng.Offset(, 1) = Target
        Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub
Còn vấn đề nhập xong không biết dữ liệu vừa nhập "chạy đi đâu mất" thì bạn tự chịu đấy nhé --=0
 

File đính kèm

Code sẽ là như vầy:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Range
    If Intersect(Target, [F4:F343]) Is Nothing Then Exit Sub
    Set Rng = [E4:E343].Find(what:=Target, lookat:=xlWhole)
    If Not Rng Is Nothing Then
        Application.EnableEvents = False
        Rng.Offset(, 1) = Target
        Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub
Còn vấn đề nhập xong không biết dữ liệu vừa nhập "chạy đi đâu mất" thì bạn tự chịu đấy nhé --=0
Lại làm phiền bác. Em thật stupid thế. Em nhập dữ liệu vào cột "CC thực tế" mà không thấy nó chạy gì cả. Bác cho em hỏi, khi nhập có phải làm thêm động tác nào nữa để công thức chạy không bác? Loại trừ khả năng dữ liệu không trùng bác nhé, vì em còn thử copy dữ liệu ở bên cột "Plate No" để thử mà nó cũng không thèm nhúc nhích luôn.
Bác giúp em.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Lại làm phiền bác. Em thật stupid thế. Em nhập dữ liệu vào cột "CC thực tế" mà không thấy nó chạy gì cả. Bác cho em hỏi, khi nhập có phải làm thêm động tác nào nữa để công thức chạy không bác? Loại trừ khả năng dữ liệu không trùng bác nhé, vì em còn thử copy dữ liệu ở bên cột "Plate No" để thử mà nó cũng không thèm nhúc nhích luôn.
Bác giúp em.
Có khả năng bạn chưa Enable macro nên code không chạy được.
Bạn Enable Macro theo cách sau:
- Trên Excel 2003: Chọn Tools\Macro\Security --> Chọn Medium hoặc Low (nên chọn Medium).
- Trên Excel 2007, 2010: Chọn Excel options\Trust center\Trust center settings\Macro settings --> chọn 1 trong 2 tùy chọn cuối cùng --> OK --> OK
Sau thiết lập trên, khởi động lại Excel để thiết lập có hiệu lực.
 
Có khả năng bạn chưa Enable macro nên code không chạy được.
Bạn Enable Macro theo cách sau:
- Trên Excel 2003: Chọn Tools\Macro\Security --> Chọn Medium hoặc Low (nên chọn Medium).
- Trên Excel 2007, 2010: Chọn Excel options\Trust center\Trust center settings\Macro settings --> chọn 1 trong 2 tùy chọn cuối cùng --> OK --> OK
Sau thiết lập trên, khởi động lại Excel để thiết lập có hiệu lực.
Cảm ơn a lot.
Em làm được rồi ạ.
Chúc bác một ngày làm việc vui vẻ.
 
Chào bác nghiaphuc,

Bác làm thêm hộ em cái này nữa với ạ.

Em có thêm một cột nữa bên cạnh cột "CC thực tế" là cột "Số TT thảo đồ". Làm thế nào để dữ liệu trong cột "CC thực tế" chạy đi đâu thì dữ liệu ở hàng tương ứng trong cột "Số TT thảo đồ" chạy theo đó ạ?
Bác giúp em ạ.
 

File đính kèm

Chào bác nghiaphuc,
Bác làm thêm hộ em cái này nữa với ạ.
Em có thêm một cột nữa bên cạnh cột "CC thực tế" là cột "Số TT thảo đồ". Làm thế nào để dữ liệu trong cột "CC thực tế" chạy đi đâu thì dữ liệu ở hàng tương ứng trong cột "Số TT thảo đồ" chạy theo đó ạ?
Bác giúp em ạ.
Muốn làm được thì phải hỏi lại bạn một xíu: Trên thực tế, bạn nhập cột "CC thực tế" trước hay cột "Số TT thảo đồ" trước? Vì trật tự 2 thao tác này có liên quan đến việc so sánh vị trí của Target trong code. Giả sử cứ để như cũ, khi bạn mới nhập xong cột "CC thực tế", chưa kịp nhập "Số TT thảo đồ" thì giá trị vừa nhập lại chạy đi đâu mất, vậy thì mình đâu có cơ sở để cho "Số TT thảo đồ" chạy theo?!
 
Muốn làm được thì phải hỏi lại bạn một xíu: Trên thực tế, bạn nhập cột "CC thực tế" trước hay cột "Số TT thảo đồ" trước? Vì trật tự 2 thao tác này có liên quan đến việc so sánh vị trí của Target trong code. Giả sử cứ để như cũ, khi bạn mới nhập xong cột "CC thực tế", chưa kịp nhập "Số TT thảo đồ" thì giá trị vừa nhập lại chạy đi đâu mất, vậy thì mình đâu có cơ sở để cho "Số TT thảo đồ" chạy theo?!

Chào bác nghiaphuc,
1. Cột "CC thực tế" em sẽ nhập trước ạ
2. Một vấn đề về file bác làm cho em, khi em nhập dữ liệu vào cột "CC thực tế", nếu dữ liệu trùng thì sẽ tự động nhảy cùng hàng rồi ạ, nhưng dữ liệu không trùng thì lại bị chèn mất( do vẫn đứng nguyên ở vị trí được nhập) khi có dữ liệu trùng được nhập. Thế là bị mất dữ liệu ạ. Liệu có thể dữ liệu không trùng thì sẽ tự nhảy sang cột khác bên cạnh được không ạ (em sẽ phải chèn thêm vào)?
Mong bác giúp em ạ. Bác xem giúp em ở file đính kèm dưới đây ạ.
 

File đính kèm

Chào bác nghiaphuc,
1. Cột "CC thực tế" em sẽ nhập trước ạ
2. Một vấn đề về file bác làm cho em, khi em nhập dữ liệu vào cột "CC thực tế", nếu dữ liệu trùng thì sẽ tự động nhảy cùng hàng rồi ạ, nhưng dữ liệu không trùng thì lại bị chèn mất( do vẫn đứng nguyên ở vị trí được nhập) khi có dữ liệu trùng được nhập. Thế là bị mất dữ liệu ạ. Liệu có thể dữ liệu không trùng thì sẽ tự nhảy sang cột khác bên cạnh được không ạ (em sẽ phải chèn thêm vào)?
Mong bác giúp em ạ. Bác xem giúp em ở file đính kèm dưới đây ạ.
Thử đổi hướng một chút: Nhập dữ liệu từ Form chứ không nhập trực tiếp trên sheet nữa:
1. Code trên sheet bây giờ là:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, [F4:F343]) Is Nothing Then FrmNhap.Show
End Sub
2. Trên Form (FrmNhap): Đối tượng chính là 2 Textbox: TxtCC (để nhập "CC thực tế") và TxtTT (để nhập "Số TT thảo đồ"), ngoài ra còn 1 nút CmdThoat để thoát khỏi Form. Code trên Form gồm:
PHP:
Private Sub CmdThoat_Click()
    Unload Me
End Sub
PHP:
Private Sub TxtTT_AfterUpdate()
    Dim Rng As Range
    If TxtTT <> "" And TxtCC = "" Then
        MsgBox "Chua nhap so CC thuc te."
        TxtCC.SetFocus
        Exit Sub
    End If
    Sheet3.Activate
    Set Rng = [E4:E343].Find(what:=TxtCC, lookat:=xlWhole)
    If Not Rng Is Nothing Then
        Rng.Offset(, 1) = TxtCC
        Rng.Offset(, 3) = TxtTT
    Else
        [G65536].End(xlUp).Offset(1) = TxtCC
        [G65536].End(xlUp).Offset(, 1) = TxtTT
    End If
    TxtCC = "": TxtTT = "": TxtCC.SetFocus
End Sub
Cách sử dụng: Trên sheet khi click chuột vào 1 ô bất kỳ trên vùng F4:F343 thì Form sẽ hiện ra để nhập dữ liệu. Khi nào nhập chán rồi thì nhấn nút Thoát hoặc nhấn ESC để đóng Form.
Bạn tham khảo trong file đính kèm nhé.
 

File đính kèm

Thử đổi hướng một chút: Nhập dữ liệu từ Form chứ không nhập trực tiếp trên sheet nữa:
1. Code trên sheet bây giờ là:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, [F4:F343]) Is Nothing Then FrmNhap.Show
End Sub
2. Trên Form (FrmNhap): Đối tượng chính là 2 Textbox: TxtCC (để nhập "CC thực tế") và TxtTT (để nhập "Số TT thảo đồ"), ngoài ra còn 1 nút CmdThoat để thoát khỏi Form. Code trên Form gồm:
PHP:
Private Sub CmdThoat_Click()
    Unload Me
End Sub
PHP:
Private Sub TxtTT_AfterUpdate()
    Dim Rng As Range
    If TxtTT <> "" And TxtCC = "" Then
        MsgBox "Chua nhap so CC thuc te."
        TxtCC.SetFocus
        Exit Sub
    End If
    Sheet3.Activate
    Set Rng = [E4:E343].Find(what:=TxtCC, lookat:=xlWhole)
    If Not Rng Is Nothing Then
        Rng.Offset(, 1) = TxtCC
        Rng.Offset(, 3) = TxtTT
    Else
        [G65536].End(xlUp).Offset(1) = TxtCC
        [G65536].End(xlUp).Offset(, 1) = TxtTT
    End If
    TxtCC = "": TxtTT = "": TxtCC.SetFocus
End Sub
Cách sử dụng: Trên sheet khi click chuột vào 1 ô bất kỳ trên vùng F4:F343 thì Form sẽ hiện ra để nhập dữ liệu. Khi nào nhập chán rồi thì nhấn nút Thoát hoặc nhấn ESC để đóng Form.
Bạn tham khảo trong file đính kèm nhé.

Cảm ơn bác nhiều ạ. }}}}}

nghiaphuc: Ngay dưới mỗi bài viết có nút Cảm ơn đó bạn. Hãy nhấn vào đó là đủ rồi.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Web KT

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

Back
Top Bottom